diff --git a/.github/workflows/terratest-gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.yml b/.github/workflows/terratest-gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.yml new file mode 100644 index 000000000..b3c0756cd --- /dev/null +++ b/.github/workflows/terratest-gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/** + - internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.go + - internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go + - terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest ./terratest/gateway_networking_k8s_io_v1alpha2 diff --git a/.github/workflows/terratest-gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.yml b/.github/workflows/terratest-gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.yml new file mode 100644 index 000000000..bc2e68aa2 --- /dev/null +++ b/.github/workflows/terratest-gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/** + - internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.go + - internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go + - terratest/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest ./terratest/gateway_networking_k8s_io_v1alpha3 diff --git a/.github/workflows/terratest-kueue_x_k8s_io_cohort_v1alpha1_manifest.yml b/.github/workflows/terratest-kueue_x_k8s_io_cohort_v1alpha1_manifest.yml new file mode 100644 index 000000000..b631308f1 --- /dev/null +++ b/.github/workflows/terratest-kueue_x_k8s_io_cohort_v1alpha1_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: KueueXK8SIoCohortV1Alpha1Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/** + - internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest.go + - internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go + - terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestKueueXK8SIoCohortV1Alpha1Manifest ./terratest/kueue_x_k8s_io_v1alpha1 diff --git a/.github/workflows/terratest-kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.yml b/.github/workflows/terratest-kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.yml new file mode 100644 index 000000000..ca0c61859 --- /dev/null +++ b/.github/workflows/terratest-kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: KueueXK8SIoMultiKueueClusterV1Alpha1Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/** + - internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.go + - internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go + - terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestKueueXK8SIoMultiKueueClusterV1Alpha1Manifest ./terratest/kueue_x_k8s_io_v1alpha1 diff --git a/.github/workflows/terratest-kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.yml b/.github/workflows/terratest-kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.yml new file mode 100644 index 000000000..16226cc73 --- /dev/null +++ b/.github/workflows/terratest-kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: KueueXK8SIoMultiKueueConfigV1Alpha1Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/** + - internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.go + - internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go + - terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestKueueXK8SIoMultiKueueConfigV1Alpha1Manifest ./terratest/kueue_x_k8s_io_v1alpha1 diff --git a/.github/workflows/terratest-kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.yml b/.github/workflows/terratest-kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.yml new file mode 100644 index 000000000..a550cb5d9 --- /dev/null +++ b/.github/workflows/terratest-kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: KueueXK8SIoProvisioningRequestConfigV1Beta1Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/** + - internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.go + - internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go + - terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestKueueXK8SIoProvisioningRequestConfigV1Beta1Manifest ./terratest/kueue_x_k8s_io_v1beta1 diff --git a/.github/workflows/terratest-kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.yml b/.github/workflows/terratest-kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.yml new file mode 100644 index 000000000..c6472e6fd --- /dev/null +++ b/.github/workflows/terratest-kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: KueueXK8SIoWorkloadPriorityClassV1Beta1Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/** + - internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.go + - internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go + - terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestKueueXK8SIoWorkloadPriorityClassV1Beta1Manifest ./terratest/kueue_x_k8s_io_v1beta1 diff --git a/.github/workflows/terratest-operator_victoriametrics_com_v_logs_v1beta1_manifest.yml b/.github/workflows/terratest-operator_victoriametrics_com_v_logs_v1beta1_manifest.yml new file mode 100644 index 000000000..b54867693 --- /dev/null +++ b/.github/workflows/terratest-operator_victoriametrics_com_v_logs_v1beta1_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: OperatorVictoriametricsComVlogsV1Beta1Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/** + - internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest.go + - internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go + - terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestOperatorVictoriametricsComVlogsV1Beta1Manifest ./terratest/operator_victoriametrics_com_v1beta1 diff --git a/.github/workflows/terratest-operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.yml b/.github/workflows/terratest-operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.yml new file mode 100644 index 000000000..2be361716 --- /dev/null +++ b/.github/workflows/terratest-operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.yml @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: The terraform-provider-k8s Authors +# SPDX-License-Identifier: 0BSD + +name: OperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest +on: + pull_request: + branches: [ main ] + paths: + - examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/** + - internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.go + - internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go + - terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go +jobs: + terraform: + name: Test with Terraform + runs-on: ubuntu-latest + steps: + - id: checkout + name: Checkout + uses: actions/checkout@v4 + - id: setup_go + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + - id: setup_terraform + name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_wrapper: false + - id: install + name: Install Provider + run: make install + - id: tests + name: Run Unit Tests + run: go test -v -timeout=120s -count=1 ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go + - id: terratest + name: Run Terratest Tests + run: go test -v -timeout=120s -count=1 -run TestOperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest ./terratest/operator_victoriametrics_com_v1beta1 diff --git a/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/data-source.tf b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/data-source.tf new file mode 100644 index 000000000..8ef009ec6 --- /dev/null +++ b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest" "example" { + metadata = { + name = "some-name" + namespace = "some-namespace" + } +} diff --git a/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/main.tf b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/outputs.tf b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/outputs.tf new file mode 100644 index 000000000..259478f2d --- /dev/null +++ b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/data-source.tf b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/data-source.tf new file mode 100644 index 000000000..94714f771 --- /dev/null +++ b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest" "example" { + metadata = { + name = "some-name" + namespace = "some-namespace" + } +} diff --git a/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/main.tf b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/outputs.tf b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/outputs.tf new file mode 100644 index 000000000..afffbec21 --- /dev/null +++ b/examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/data-source.tf b/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/data-source.tf new file mode 100644 index 000000000..89b52a1e4 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest" "example" { + metadata = { + name = "some-name" + + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/main.tf b/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/outputs.tf b/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/outputs.tf new file mode 100644 index 000000000..0993f7aa3 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/data-source.tf b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/data-source.tf new file mode 100644 index 000000000..6070803ca --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest" "example" { + metadata = { + name = "some-name" + + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/main.tf b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/outputs.tf b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/outputs.tf new file mode 100644 index 000000000..dc857b68f --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/data-source.tf b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/data-source.tf new file mode 100644 index 000000000..170886c9c --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest" "example" { + metadata = { + name = "some-name" + + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/main.tf b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/outputs.tf b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/outputs.tf new file mode 100644 index 000000000..c8517a91a --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/data-source.tf b/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/data-source.tf new file mode 100644 index 000000000..259339bee --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest" "example" { + metadata = { + name = "some-name" + + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/main.tf b/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/outputs.tf b/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/outputs.tf new file mode 100644 index 000000000..b5d28cda6 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/data-source.tf b/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/data-source.tf new file mode 100644 index 000000000..f994c7e01 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest" "example" { + metadata = { + name = "some-name" + + } +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/main.tf b/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/outputs.tf b/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/outputs.tf new file mode 100644 index 000000000..a45de509e --- /dev/null +++ b/examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/data-source.tf b/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/data-source.tf new file mode 100644 index 000000000..b946e091d --- /dev/null +++ b/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest" "example" { + metadata = { + name = "some-name" + namespace = "some-namespace" + } +} diff --git a/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/main.tf b/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/outputs.tf b/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/outputs.tf new file mode 100644 index 000000000..b5073f41a --- /dev/null +++ b/examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest.example.yaml + } +} diff --git a/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/data-source.tf b/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/data-source.tf new file mode 100644 index 000000000..8e290b4d5 --- /dev/null +++ b/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/data-source.tf @@ -0,0 +1,6 @@ +data "k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest" "example" { + metadata = { + name = "some-name" + namespace = "some-namespace" + } +} diff --git a/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/main.tf b/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/main.tf new file mode 100644 index 000000000..ce09a1445 --- /dev/null +++ b/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/main.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + k8s = { + source = "localhost/metio/k8s" + version = "9999.99.99" + } + } +} + +provider "k8s" { + offline = true +} diff --git a/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/outputs.tf b/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/outputs.tf new file mode 100644 index 000000000..f995f9af5 --- /dev/null +++ b/examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest/outputs.tf @@ -0,0 +1,5 @@ +output "manifests" { + value = { + "example" = data.k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.example.yaml + } +} diff --git a/internal/provider/acme_cert_manager_io_v1/acme_cert_manager_io_challenge_v1_manifest.go b/internal/provider/acme_cert_manager_io_v1/acme_cert_manager_io_challenge_v1_manifest.go index 10ffa55f9..082ef137f 100644 --- a/internal/provider/acme_cert_manager_io_v1/acme_cert_manager_io_challenge_v1_manifest.go +++ b/internal/provider/acme_cert_manager_io_v1/acme_cert_manager_io_challenge_v1_manifest.go @@ -1231,18 +1231,18 @@ func (r *AcmeCertManagerIoChallengeV1Manifest) Schema(_ context.Context, _ datas }, "hosted_zone_id": schema.StringAttribute{ - Description: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.", - MarkdownDescription: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.", + Description: "If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.", + MarkdownDescription: "If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.", Required: false, Optional: true, Computed: false, }, "region": schema.StringAttribute{ - Description: "Always set the region when using AccessKeyID and SecretAccessKey", - MarkdownDescription: "Always set the region when using AccessKeyID and SecretAccessKey", - Required: true, - Optional: false, + Description: "Override the AWS region. Route53 is a global service and does not have regional endpoints but the region specified here (or via environment variables) is used as a hint to help compute the correct AWS credential scope and partition when it connects to Route53. See: - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html) - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html) If you omit this region field, cert-manager will use the region from AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set in the cert-manager controller Pod. The 'region' field is not needed if you use [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook). In this case this 'region' field value is ignored. The 'region' field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent), In this case this 'region' field value is ignored.", + MarkdownDescription: "Override the AWS region. Route53 is a global service and does not have regional endpoints but the region specified here (or via environment variables) is used as a hint to help compute the correct AWS credential scope and partition when it connects to Route53. See: - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html) - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html) If you omit this region field, cert-manager will use the region from AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set in the cert-manager controller Pod. The 'region' field is not needed if you use [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook). In this case this 'region' field value is ignored. The 'region' field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent), In this case this 'region' field value is ignored.", + Required: false, + Optional: true, Computed: false, }, @@ -1435,8 +1435,8 @@ func (r *AcmeCertManagerIoChallengeV1Manifest) Schema(_ context.Context, _ datas MarkdownDescription: "ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Annotations that should be added to the create ACME HTTP01 solver pods.", - MarkdownDescription: "Annotations that should be added to the create ACME HTTP01 solver pods.", + Description: "Annotations that should be added to the created ACME HTTP01 solver pods.", + MarkdownDescription: "Annotations that should be added to the created ACME HTTP01 solver pods.", ElementType: types.StringType, Required: false, Optional: true, @@ -2681,8 +2681,8 @@ func (r *AcmeCertManagerIoChallengeV1Manifest) Schema(_ context.Context, _ datas MarkdownDescription: "ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Annotations that should be added to the create ACME HTTP01 solver pods.", - MarkdownDescription: "Annotations that should be added to the create ACME HTTP01 solver pods.", + Description: "Annotations that should be added to the created ACME HTTP01 solver pods.", + MarkdownDescription: "Annotations that should be added to the created ACME HTTP01 solver pods.", ElementType: types.StringType, Required: false, Optional: true, diff --git a/internal/provider/anywhere_eks_amazonaws_com_v1alpha1/anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest.go b/internal/provider/anywhere_eks_amazonaws_com_v1alpha1/anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest.go index c095d3b75..51329ed90 100644 --- a/internal/provider/anywhere_eks_amazonaws_com_v1alpha1/anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest.go +++ b/internal/provider/anywhere_eks_amazonaws_com_v1alpha1/anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest.go @@ -173,6 +173,15 @@ type AnywhereEksAmazonawsComBundlesV1Alpha1ManifestData struct { Manifest *struct { Uri *string `tfsdk:"uri" json:"uri,omitempty"` } `tfsdk:"manifest" json:"manifest,omitempty"` + Startupapicheck *struct { + Arch *[]string `tfsdk:"arch" json:"arch,omitempty"` + Description *string `tfsdk:"description" json:"description,omitempty"` + ImageDigest *string `tfsdk:"image_digest" json:"imageDigest,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Os *string `tfsdk:"os" json:"os,omitempty"` + OsName *string `tfsdk:"os_name" json:"osName,omitempty"` + Uri *string `tfsdk:"uri" json:"uri,omitempty"` + } `tfsdk:"startupapicheck" json:"startupapicheck,omitempty"` Version *string `tfsdk:"version" json:"version,omitempty"` Webhook *struct { Arch *[]string `tfsdk:"arch" json:"arch,omitempty"` @@ -1978,8 +1987,8 @@ func (r *AnywhereEksAmazonawsComBundlesV1Alpha1Manifest) Schema(_ context.Contex }, "ctl": schema.SingleNestedAttribute{ - Description: "", - MarkdownDescription: "", + Description: "This field has been deprecated", + MarkdownDescription: "This field has been deprecated", Attributes: map[string]schema.Attribute{ "arch": schema.ListAttribute{ Description: "Architectures of the asset", @@ -2041,8 +2050,8 @@ func (r *AnywhereEksAmazonawsComBundlesV1Alpha1Manifest) Schema(_ context.Contex Computed: false, }, }, - Required: true, - Optional: false, + Required: false, + Optional: true, Computed: false, }, @@ -2063,6 +2072,75 @@ func (r *AnywhereEksAmazonawsComBundlesV1Alpha1Manifest) Schema(_ context.Contex Computed: false, }, + "startupapicheck": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "arch": schema.ListAttribute{ + Description: "Architectures of the asset", + MarkdownDescription: "Architectures of the asset", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "description": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "image_digest": schema.StringAttribute{ + Description: "The SHA256 digest of the image manifest", + MarkdownDescription: "The SHA256 digest of the image manifest", + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "The asset name", + MarkdownDescription: "The asset name", + Required: false, + Optional: true, + Computed: false, + }, + + "os": schema.StringAttribute{ + Description: "Operating system of the asset", + MarkdownDescription: "Operating system of the asset", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("linux", "darwin", "windows"), + }, + }, + + "os_name": schema.StringAttribute{ + Description: "Name of the OS like ubuntu, bottlerocket", + MarkdownDescription: "Name of the OS like ubuntu, bottlerocket", + Required: false, + Optional: true, + Computed: false, + }, + + "uri": schema.StringAttribute{ + Description: "The image repository, name, and tag", + MarkdownDescription: "The image repository, name, and tag", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + "version": schema.StringAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_cluster_v1_manifest.go b/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_cluster_v1_manifest.go index d5bc692fe..fb94da7a8 100644 --- a/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_cluster_v1_manifest.go +++ b/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_cluster_v1_manifest.go @@ -2630,8 +2630,8 @@ func (r *AppsKubeblocksIoClusterV1Manifest) Schema(_ context.Context, _ datasour NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Specifies Annotations to override or add for underlying Pods.", - MarkdownDescription: "Specifies Annotations to override or add for underlying Pods.", + Description: "Specifies Annotations to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", + MarkdownDescription: "Specifies Annotations to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", ElementType: types.StringType, Required: false, Optional: true, @@ -6515,8 +6515,8 @@ func (r *AppsKubeblocksIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "labels": schema.MapAttribute{ - Description: "Specifies Labels to override or add for underlying Pods.", - MarkdownDescription: "Specifies Labels to override or add for underlying Pods.", + Description: "Specifies Labels to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", + MarkdownDescription: "Specifies Labels to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", ElementType: types.StringType, Required: false, Optional: true, @@ -11324,8 +11324,8 @@ func (r *AppsKubeblocksIoClusterV1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "The template for generating Components for shards, where each shard consists of one Component. This field is of type ClusterComponentSpec, which encapsulates all the required details and definitions for creating and managing the Components. KubeBlocks uses this template to generate a set of identical Components or shards. All the generated Components will have the same specifications and definitions as specified in the 'template' field. This allows for the creation of multiple Components with consistent configurations, enabling sharding and distribution of workloads across Components.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Specifies Annotations to override or add for underlying Pods.", - MarkdownDescription: "Specifies Annotations to override or add for underlying Pods.", + Description: "Specifies Annotations to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", + MarkdownDescription: "Specifies Annotations to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", ElementType: types.StringType, Required: false, Optional: true, @@ -15209,8 +15209,8 @@ func (r *AppsKubeblocksIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "labels": schema.MapAttribute{ - Description: "Specifies Labels to override or add for underlying Pods.", - MarkdownDescription: "Specifies Labels to override or add for underlying Pods.", + Description: "Specifies Labels to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", + MarkdownDescription: "Specifies Labels to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", ElementType: types.StringType, Required: false, Optional: true, @@ -18888,13 +18888,13 @@ func (r *AppsKubeblocksIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "termination_policy": schema.StringAttribute{ - Description: "Specifies the behavior when a Cluster is deleted. It defines how resources, data, and backups associated with a Cluster are managed during termination. Choose a policy based on the desired level of resource cleanup and data preservation: - 'DoNotTerminate': Prevents deletion of the Cluster. This policy ensures that all resources remain intact. - 'Halt': Deletes Cluster resources like Pods and Services but retains Persistent Volume Claims (PVCs), allowing for data preservation while stopping other operations. - 'Delete': Extends the 'Halt' policy by also removing PVCs, leading to a thorough cleanup while removing all persistent data. - 'WipeOut': An aggressive policy that deletes all Cluster resources, including volume snapshots and backups in external storage. This results in complete data removal and should be used cautiously, primarily in non-production environments to avoid irreversible data loss. Warning: Choosing an inappropriate termination policy can result in data loss. The 'WipeOut' policy is particularly risky in production environments due to its irreversible nature.", - MarkdownDescription: "Specifies the behavior when a Cluster is deleted. It defines how resources, data, and backups associated with a Cluster are managed during termination. Choose a policy based on the desired level of resource cleanup and data preservation: - 'DoNotTerminate': Prevents deletion of the Cluster. This policy ensures that all resources remain intact. - 'Halt': Deletes Cluster resources like Pods and Services but retains Persistent Volume Claims (PVCs), allowing for data preservation while stopping other operations. - 'Delete': Extends the 'Halt' policy by also removing PVCs, leading to a thorough cleanup while removing all persistent data. - 'WipeOut': An aggressive policy that deletes all Cluster resources, including volume snapshots and backups in external storage. This results in complete data removal and should be used cautiously, primarily in non-production environments to avoid irreversible data loss. Warning: Choosing an inappropriate termination policy can result in data loss. The 'WipeOut' policy is particularly risky in production environments due to its irreversible nature.", + Description: "Specifies the behavior when a Cluster is deleted. It defines how resources, data, and backups associated with a Cluster are managed during termination. Choose a policy based on the desired level of resource cleanup and data preservation: - 'DoNotTerminate': Prevents deletion of the Cluster. This policy ensures that all resources remain intact. - 'Delete': Deletes all runtime resources belong to the Cluster. - 'WipeOut': An aggressive policy that deletes all Cluster resources, including volume snapshots and backups in external storage. This results in complete data removal and should be used cautiously, primarily in non-production environments to avoid irreversible data loss. Warning: Choosing an inappropriate termination policy can result in data loss. The 'WipeOut' policy is particularly risky in production environments due to its irreversible nature.", + MarkdownDescription: "Specifies the behavior when a Cluster is deleted. It defines how resources, data, and backups associated with a Cluster are managed during termination. Choose a policy based on the desired level of resource cleanup and data preservation: - 'DoNotTerminate': Prevents deletion of the Cluster. This policy ensures that all resources remain intact. - 'Delete': Deletes all runtime resources belong to the Cluster. - 'WipeOut': An aggressive policy that deletes all Cluster resources, including volume snapshots and backups in external storage. This results in complete data removal and should be used cautiously, primarily in non-production environments to avoid irreversible data loss. Warning: Choosing an inappropriate termination policy can result in data loss. The 'WipeOut' policy is particularly risky in production environments due to its irreversible nature.", Required: true, Optional: false, Computed: false, Validators: []validator.String{ - stringvalidator.OneOf("DoNotTerminate", "Halt", "Delete", "WipeOut"), + stringvalidator.OneOf("DoNotTerminate", "Delete", "WipeOut"), }, }, diff --git a/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_component_v1_manifest.go b/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_component_v1_manifest.go index 166a4c279..41c537536 100644 --- a/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_component_v1_manifest.go +++ b/internal/provider/apps_kubeblocks_io_v1/apps_kubeblocks_io_component_v1_manifest.go @@ -1280,8 +1280,8 @@ func (r *AppsKubeblocksIoComponentV1Manifest) Schema(_ context.Context, _ dataso MarkdownDescription: "ComponentSpec defines the desired state of Component", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Specifies Annotations to override or add for underlying Pods.", - MarkdownDescription: "Specifies Annotations to override or add for underlying Pods.", + Description: "Specifies Annotations to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", + MarkdownDescription: "Specifies Annotations to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", ElementType: types.StringType, Required: false, Optional: true, @@ -5106,8 +5106,8 @@ func (r *AppsKubeblocksIoComponentV1Manifest) Schema(_ context.Context, _ dataso }, "labels": schema.MapAttribute{ - Description: "Specifies Labels to override or add for underlying Pods.", - MarkdownDescription: "Specifies Labels to override or add for underlying Pods.", + Description: "Specifies Labels to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", + MarkdownDescription: "Specifies Labels to override or add for underlying Pods, PVCs, Account & TLS Secrets, Services Owned by Component.", ElementType: types.StringType, Required: false, Optional: true, diff --git a/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_canary_v1_manifest.go b/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_canary_v1_manifest.go index e3ae1cf4a..cb5c629b1 100644 --- a/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_canary_v1_manifest.go +++ b/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_canary_v1_manifest.go @@ -765,6 +765,7 @@ type CanariesFlanksourceComCanaryV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -1211,7 +1212,8 @@ type CanariesFlanksourceComCanaryV1ManifestData struct { ServiceAccount *string `tfsdk:"service_account" json:"serviceAccount,omitempty"` } `tfsdk:"value_from" json:"valueFrom,omitempty"` } `tfsdk:"credentials" json:"credentials,omitempty"` - Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + SkipTLSVerify *bool `tfsdk:"skip_tls_verify" json:"skipTLSVerify,omitempty"` } `tfsdk:"gcp_connection" json:"gcpConnection,omitempty"` Instance *string `tfsdk:"instance" json:"instance,omitempty"` Project *string `tfsdk:"project" json:"project,omitempty"` @@ -2159,7 +2161,8 @@ type CanariesFlanksourceComCanaryV1ManifestData struct { ServiceAccount *string `tfsdk:"service_account" json:"serviceAccount,omitempty"` } `tfsdk:"value_from" json:"valueFrom,omitempty"` } `tfsdk:"credentials" json:"credentials,omitempty"` - Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + SkipTLSVerify *bool `tfsdk:"skip_tls_verify" json:"skipTLSVerify,omitempty"` } `tfsdk:"gcp" json:"gcp,omitempty"` } `tfsdk:"connections" json:"connections,omitempty"` Description *string `tfsdk:"description" json:"description,omitempty"` @@ -2393,7 +2396,8 @@ type CanariesFlanksourceComCanaryV1ManifestData struct { ServiceAccount *string `tfsdk:"service_account" json:"serviceAccount,omitempty"` } `tfsdk:"value_from" json:"valueFrom,omitempty"` } `tfsdk:"credentials" json:"credentials,omitempty"` - Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + SkipTLSVerify *bool `tfsdk:"skip_tls_verify" json:"skipTLSVerify,omitempty"` } `tfsdk:"gcp_connection" json:"gcpConnection,omitempty"` Icon *string `tfsdk:"icon" json:"icon,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` @@ -10625,6 +10629,14 @@ func (r *CanariesFlanksourceComCanaryV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -10658,8 +10670,8 @@ func (r *CanariesFlanksourceComCanaryV1Manifest) Schema(_ context.Context, _ dat }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -10675,8 +10687,8 @@ func (r *CanariesFlanksourceComCanaryV1Manifest) Schema(_ context.Context, _ dat }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -13563,6 +13575,14 @@ func (r *CanariesFlanksourceComCanaryV1Manifest) Schema(_ context.Context, _ dat Optional: true, Computed: false, }, + + "skip_tls_verify": schema.BoolAttribute{ + Description: "Skip TLS verify", + MarkdownDescription: "Skip TLS verify", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -19718,6 +19738,14 @@ func (r *CanariesFlanksourceComCanaryV1Manifest) Schema(_ context.Context, _ dat Optional: true, Computed: false, }, + + "skip_tls_verify": schema.BoolAttribute{ + Description: "Skip TLS verify", + MarkdownDescription: "Skip TLS verify", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -21243,6 +21271,14 @@ func (r *CanariesFlanksourceComCanaryV1Manifest) Schema(_ context.Context, _ dat Optional: true, Computed: false, }, + + "skip_tls_verify": schema.BoolAttribute{ + Description: "Skip TLS verify", + MarkdownDescription: "Skip TLS verify", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, diff --git a/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_component_v1_manifest.go b/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_component_v1_manifest.go index bb940bdf9..c9e99ad81 100644 --- a/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_component_v1_manifest.go +++ b/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_component_v1_manifest.go @@ -46,6 +46,7 @@ type CanariesFlanksourceComComponentV1ManifestData struct { Checks *[]struct { } `tfsdk:"checks" json:"checks,omitempty"` Components *map[string]string `tfsdk:"components" json:"components,omitempty"` + ConfigID *string `tfsdk:"config_id" json:"configID,omitempty"` Configs *[]struct { Agent *string `tfsdk:"agent" json:"agent,omitempty"` Cache *string `tfsdk:"cache" json:"cache,omitempty"` @@ -55,6 +56,7 @@ type CanariesFlanksourceComComponentV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -107,6 +109,7 @@ type CanariesFlanksourceComComponentV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -229,6 +232,14 @@ func (r *CanariesFlanksourceComComponentV1Manifest) Schema(_ context.Context, _ Computed: false, }, + "config_id": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "configs": schema.ListNestedAttribute{ Description: "Lookup and associate config items with this component", MarkdownDescription: "Lookup and associate config items with this component", @@ -298,6 +309,14 @@ func (r *CanariesFlanksourceComComponentV1Manifest) Schema(_ context.Context, _ Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -331,8 +350,8 @@ func (r *CanariesFlanksourceComComponentV1Manifest) Schema(_ context.Context, _ }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -365,8 +384,8 @@ func (r *CanariesFlanksourceComComponentV1Manifest) Schema(_ context.Context, _ }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -693,6 +712,14 @@ func (r *CanariesFlanksourceComComponentV1Manifest) Schema(_ context.Context, _ Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -726,8 +753,8 @@ func (r *CanariesFlanksourceComComponentV1Manifest) Schema(_ context.Context, _ }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -743,8 +770,8 @@ func (r *CanariesFlanksourceComComponentV1Manifest) Schema(_ context.Context, _ }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, diff --git a/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_topology_v1_manifest.go b/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_topology_v1_manifest.go index a5e01bf51..bbc9d4bd0 100644 --- a/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_topology_v1_manifest.go +++ b/internal/provider/canaries_flanksource_com_v1/canaries_flanksource_com_topology_v1_manifest.go @@ -53,6 +53,7 @@ type CanariesFlanksourceComTopologyV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -63,6 +64,7 @@ type CanariesFlanksourceComTopologyV1ManifestData struct { } `tfsdk:"selector" json:"selector,omitempty"` } `tfsdk:"checks" json:"checks,omitempty"` Components *map[string]string `tfsdk:"components" json:"components,omitempty"` + ConfigID *string `tfsdk:"config_id" json:"configID,omitempty"` Configs *[]struct { Agent *string `tfsdk:"agent" json:"agent,omitempty"` Cache *string `tfsdk:"cache" json:"cache,omitempty"` @@ -72,6 +74,7 @@ type CanariesFlanksourceComTopologyV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -124,6 +127,7 @@ type CanariesFlanksourceComTopologyV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -156,6 +160,7 @@ type CanariesFlanksourceComTopologyV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -174,6 +179,7 @@ type CanariesFlanksourceComTopologyV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -206,6 +212,7 @@ type CanariesFlanksourceComTopologyV1ManifestData struct { Id *string `tfsdk:"id" json:"id,omitempty"` IncludeDeleted *bool `tfsdk:"include_deleted" json:"includeDeleted,omitempty"` LabelSelector *string `tfsdk:"label_selector" json:"labelSelector,omitempty"` + Limit *int64 `tfsdk:"limit" json:"limit,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Scope *string `tfsdk:"scope" json:"scope,omitempty"` @@ -579,6 +586,14 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -612,8 +627,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -629,8 +644,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -657,6 +672,14 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "config_id": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "configs": schema.ListNestedAttribute{ Description: "Lookup and associate config items with this component", MarkdownDescription: "Lookup and associate config items with this component", @@ -726,6 +749,14 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -759,8 +790,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -793,8 +824,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1121,6 +1152,14 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -1154,8 +1193,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1171,8 +1210,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1352,6 +1391,14 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -1385,8 +1432,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1419,8 +1466,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1489,6 +1536,14 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -1522,8 +1577,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1539,8 +1594,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1723,6 +1778,14 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "limit": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -1756,8 +1819,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "statuses": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, @@ -1790,8 +1853,8 @@ func (r *CanariesFlanksourceComTopologyV1Manifest) Schema(_ context.Context, _ d }, "types": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", + Description: "StringArray represents a one-dimensional array of the PostgreSQL character types.", + MarkdownDescription: "StringArray represents a one-dimensional array of the PostgreSQL character types.", ElementType: types.StringType, Required: false, Optional: true, diff --git a/internal/provider/cert_manager_io_v1/cert_manager_io_certificate_v1_manifest.go b/internal/provider/cert_manager_io_v1/cert_manager_io_certificate_v1_manifest.go index f5abab46b..3e065d10b 100644 --- a/internal/provider/cert_manager_io_v1/cert_manager_io_certificate_v1_manifest.go +++ b/internal/provider/cert_manager_io_v1/cert_manager_io_certificate_v1_manifest.go @@ -597,8 +597,8 @@ func (r *CertManagerIoCertificateV1Manifest) Schema(_ context.Context, _ datasou }, "rotation_policy": schema.StringAttribute{ - Description: "RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to 'Never', a private key will only be generated if one does not already exist in the target 'spec.secretName'. If one does exists but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to 'Always', a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.", - MarkdownDescription: "RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to 'Never', a private key will only be generated if one does not already exist in the target 'spec.secretName'. If one does exists but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to 'Always', a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.", + Description: "RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to 'Never', a private key will only be generated if one does not already exist in the target 'spec.secretName'. If one does exist but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to 'Always', a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.", + MarkdownDescription: "RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. If set to 'Never', a private key will only be generated if one does not already exist in the target 'spec.secretName'. If one does exist but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to 'Always', a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is 'Never' for backward compatibility.", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/cert_manager_io_v1/cert_manager_io_cluster_issuer_v1_manifest.go b/internal/provider/cert_manager_io_v1/cert_manager_io_cluster_issuer_v1_manifest.go index 1ba7e91bc..a07f86055 100644 --- a/internal/provider/cert_manager_io_v1/cert_manager_io_cluster_issuer_v1_manifest.go +++ b/internal/provider/cert_manager_io_v1/cert_manager_io_cluster_issuer_v1_manifest.go @@ -1394,18 +1394,18 @@ func (r *CertManagerIoClusterIssuerV1Manifest) Schema(_ context.Context, _ datas }, "hosted_zone_id": schema.StringAttribute{ - Description: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.", - MarkdownDescription: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.", + Description: "If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.", + MarkdownDescription: "If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.", Required: false, Optional: true, Computed: false, }, "region": schema.StringAttribute{ - Description: "Always set the region when using AccessKeyID and SecretAccessKey", - MarkdownDescription: "Always set the region when using AccessKeyID and SecretAccessKey", - Required: true, - Optional: false, + Description: "Override the AWS region. Route53 is a global service and does not have regional endpoints but the region specified here (or via environment variables) is used as a hint to help compute the correct AWS credential scope and partition when it connects to Route53. See: - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html) - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html) If you omit this region field, cert-manager will use the region from AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set in the cert-manager controller Pod. The 'region' field is not needed if you use [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook). In this case this 'region' field value is ignored. The 'region' field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent), In this case this 'region' field value is ignored.", + MarkdownDescription: "Override the AWS region. Route53 is a global service and does not have regional endpoints but the region specified here (or via environment variables) is used as a hint to help compute the correct AWS credential scope and partition when it connects to Route53. See: - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html) - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html) If you omit this region field, cert-manager will use the region from AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set in the cert-manager controller Pod. The 'region' field is not needed if you use [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook). In this case this 'region' field value is ignored. The 'region' field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent), In this case this 'region' field value is ignored.", + Required: false, + Optional: true, Computed: false, }, @@ -1598,8 +1598,8 @@ func (r *CertManagerIoClusterIssuerV1Manifest) Schema(_ context.Context, _ datas MarkdownDescription: "ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Annotations that should be added to the create ACME HTTP01 solver pods.", - MarkdownDescription: "Annotations that should be added to the create ACME HTTP01 solver pods.", + Description: "Annotations that should be added to the created ACME HTTP01 solver pods.", + MarkdownDescription: "Annotations that should be added to the created ACME HTTP01 solver pods.", ElementType: types.StringType, Required: false, Optional: true, @@ -2844,8 +2844,8 @@ func (r *CertManagerIoClusterIssuerV1Manifest) Schema(_ context.Context, _ datas MarkdownDescription: "ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Annotations that should be added to the create ACME HTTP01 solver pods.", - MarkdownDescription: "Annotations that should be added to the create ACME HTTP01 solver pods.", + Description: "Annotations that should be added to the created ACME HTTP01 solver pods.", + MarkdownDescription: "Annotations that should be added to the created ACME HTTP01 solver pods.", ElementType: types.StringType, Required: false, Optional: true, diff --git a/internal/provider/cert_manager_io_v1/cert_manager_io_issuer_v1_manifest.go b/internal/provider/cert_manager_io_v1/cert_manager_io_issuer_v1_manifest.go index b46a2327a..c08b4cd9a 100644 --- a/internal/provider/cert_manager_io_v1/cert_manager_io_issuer_v1_manifest.go +++ b/internal/provider/cert_manager_io_v1/cert_manager_io_issuer_v1_manifest.go @@ -1407,18 +1407,18 @@ func (r *CertManagerIoIssuerV1Manifest) Schema(_ context.Context, _ datasource.S }, "hosted_zone_id": schema.StringAttribute{ - Description: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.", - MarkdownDescription: "If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.", + Description: "If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.", + MarkdownDescription: "If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.", Required: false, Optional: true, Computed: false, }, "region": schema.StringAttribute{ - Description: "Always set the region when using AccessKeyID and SecretAccessKey", - MarkdownDescription: "Always set the region when using AccessKeyID and SecretAccessKey", - Required: true, - Optional: false, + Description: "Override the AWS region. Route53 is a global service and does not have regional endpoints but the region specified here (or via environment variables) is used as a hint to help compute the correct AWS credential scope and partition when it connects to Route53. See: - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html) - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html) If you omit this region field, cert-manager will use the region from AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set in the cert-manager controller Pod. The 'region' field is not needed if you use [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook). In this case this 'region' field value is ignored. The 'region' field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent), In this case this 'region' field value is ignored.", + MarkdownDescription: "Override the AWS region. Route53 is a global service and does not have regional endpoints but the region specified here (or via environment variables) is used as a hint to help compute the correct AWS credential scope and partition when it connects to Route53. See: - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html) - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html) If you omit this region field, cert-manager will use the region from AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set in the cert-manager controller Pod. The 'region' field is not needed if you use [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook). In this case this 'region' field value is ignored. The 'region' field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html). Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by: [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent), In this case this 'region' field value is ignored.", + Required: false, + Optional: true, Computed: false, }, @@ -1611,8 +1611,8 @@ func (r *CertManagerIoIssuerV1Manifest) Schema(_ context.Context, _ datasource.S MarkdownDescription: "ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Annotations that should be added to the create ACME HTTP01 solver pods.", - MarkdownDescription: "Annotations that should be added to the create ACME HTTP01 solver pods.", + Description: "Annotations that should be added to the created ACME HTTP01 solver pods.", + MarkdownDescription: "Annotations that should be added to the created ACME HTTP01 solver pods.", ElementType: types.StringType, Required: false, Optional: true, @@ -2857,8 +2857,8 @@ func (r *CertManagerIoIssuerV1Manifest) Schema(_ context.Context, _ datasource.S MarkdownDescription: "ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ - Description: "Annotations that should be added to the create ACME HTTP01 solver pods.", - MarkdownDescription: "Annotations that should be added to the create ACME HTTP01 solver pods.", + Description: "Annotations that should be added to the created ACME HTTP01 solver pods.", + MarkdownDescription: "Annotations that should be added to the created ACME HTTP01 solver pods.", ElementType: types.StringType, Required: false, Optional: true, diff --git a/internal/provider/elbv2_k8s_aws_v1beta1/elbv2_k8s_aws_ingress_class_params_v1beta1_manifest.go b/internal/provider/elbv2_k8s_aws_v1beta1/elbv2_k8s_aws_ingress_class_params_v1beta1_manifest.go index 983984638..a4e5628fe 100644 --- a/internal/provider/elbv2_k8s_aws_v1beta1/elbv2_k8s_aws_ingress_class_params_v1beta1_manifest.go +++ b/internal/provider/elbv2_k8s_aws_v1beta1/elbv2_k8s_aws_ingress_class_params_v1beta1_manifest.go @@ -46,8 +46,16 @@ type Elbv2K8SAwsIngressClassParamsV1Beta1ManifestData struct { Group *struct { Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"group" json:"group,omitempty"` - InboundCIDRs *[]string `tfsdk:"inbound_cidrs" json:"inboundCIDRs,omitempty"` - IpAddressType *string `tfsdk:"ip_address_type" json:"ipAddressType,omitempty"` + InboundCIDRs *[]string `tfsdk:"inbound_cidrs" json:"inboundCIDRs,omitempty"` + IpAddressType *string `tfsdk:"ip_address_type" json:"ipAddressType,omitempty"` + Listeners *[]struct { + ListenerAttributes *[]struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"listener_attributes" json:"listenerAttributes,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + Protocol *string `tfsdk:"protocol" json:"protocol,omitempty"` + } `tfsdk:"listeners" json:"listeners,omitempty"` LoadBalancerAttributes *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` @@ -184,6 +192,60 @@ func (r *Elbv2K8SAwsIngressClassParamsV1Beta1Manifest) Schema(_ context.Context, }, }, + "listeners": schema.ListNestedAttribute{ + Description: "Listeners define a list of listeners with their protocol, port and attributes.", + MarkdownDescription: "Listeners define a list of listeners with their protocol, port and attributes.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "listener_attributes": schema.ListNestedAttribute{ + Description: "The attributes of the listener", + MarkdownDescription: "The attributes of the listener", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the attribute.", + MarkdownDescription: "The key of the attribute.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "The value of the attribute.", + MarkdownDescription: "The value of the attribute.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "The port of the listener", + MarkdownDescription: "The port of the listener", + Required: false, + Optional: true, + Computed: false, + }, + + "protocol": schema.StringAttribute{ + Description: "The protocol of the listener", + MarkdownDescription: "The protocol of the listener", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "load_balancer_attributes": schema.ListNestedAttribute{ Description: "LoadBalancerAttributes define the custom attributes to LoadBalancers for all Ingress that that belong to IngressClass with this IngressClassParams.", MarkdownDescription: "LoadBalancerAttributes define the custom attributes to LoadBalancers for all Ingress that that belong to IngressClass with this IngressClassParams.", diff --git a/internal/provider/external_secrets_io_v1beta1/external_secrets_io_cluster_secret_store_v1beta1_manifest.go b/internal/provider/external_secrets_io_v1beta1/external_secrets_io_cluster_secret_store_v1beta1_manifest.go index 2cf509e6d..c97a7633b 100644 --- a/internal/provider/external_secrets_io_v1beta1/external_secrets_io_cluster_secret_store_v1beta1_manifest.go +++ b/internal/provider/external_secrets_io_v1beta1/external_secrets_io_cluster_secret_store_v1beta1_manifest.go @@ -602,6 +602,18 @@ type ExternalSecretsIoClusterSecretStoreV1Beta1ManifestData struct { Database *string `tfsdk:"database" json:"database,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` } `tfsdk:"passworddepot" json:"passworddepot,omitempty"` + Previder *struct { + Auth *struct { + SecretRef *struct { + AccessToken *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + } `tfsdk:"access_token" json:"accessToken,omitempty"` + } `tfsdk:"secret_ref" json:"secretRef,omitempty"` + } `tfsdk:"auth" json:"auth,omitempty"` + BaseUri *string `tfsdk:"base_uri" json:"baseUri,omitempty"` + } `tfsdk:"previder" json:"previder,omitempty"` Pulumi *struct { AccessToken *struct { SecretRef *struct { @@ -613,6 +625,7 @@ type ExternalSecretsIoClusterSecretStoreV1Beta1ManifestData struct { ApiUrl *string `tfsdk:"api_url" json:"apiUrl,omitempty"` Environment *string `tfsdk:"environment" json:"environment,omitempty"` Organization *string `tfsdk:"organization" json:"organization,omitempty"` + Project *string `tfsdk:"project" json:"project,omitempty"` } `tfsdk:"pulumi" json:"pulumi,omitempty"` Scaleway *struct { AccessKey *struct { @@ -1319,7 +1332,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -1464,7 +1477,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -1749,7 +1762,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -1982,7 +1995,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2252,7 +2265,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2407,7 +2420,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2486,7 +2499,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2750,7 +2763,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2886,7 +2899,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2957,7 +2970,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3058,7 +3071,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3114,7 +3127,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3176,7 +3189,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3322,7 +3335,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3426,7 +3439,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3536,7 +3549,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3673,7 +3686,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3726,7 +3739,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4020,7 +4033,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4131,7 +4144,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4211,7 +4224,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4400,7 +4413,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4495,7 +4508,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4574,7 +4587,78 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + }, + }, + + "previder": schema.SingleNestedAttribute{ + Description: "Previder configures this store to sync secrets using the Previder provider", + MarkdownDescription: "Previder configures this store to sync secrets using the Previder provider", + Attributes: map[string]schema.Attribute{ + "auth": schema.SingleNestedAttribute{ + Description: "PreviderAuth contains a secretRef for credentials.", + MarkdownDescription: "PreviderAuth contains a secretRef for credentials.", + Attributes: map[string]schema.Attribute{ + "secret_ref": schema.SingleNestedAttribute{ + Description: "PreviderAuthSecretRef holds secret references for Previder Vault credentials.", + MarkdownDescription: "PreviderAuthSecretRef holds secret references for Previder Vault credentials.", + Attributes: map[string]schema.Attribute{ + "access_token": schema.SingleNestedAttribute{ + Description: "The AccessToken is used for authentication", + MarkdownDescription: "The AccessToken is used for authentication", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the entry in the Secret resource's 'data' field to be used. Some instances of this field may be defaulted, in others it may be required.", + MarkdownDescription: "The key of the entry in the Secret resource's 'data' field to be used. Some instances of this field may be defaulted, in others it may be required.", + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "The name of the Secret resource being referred to.", + MarkdownDescription: "The name of the Secret resource being referred to.", + Required: false, + Optional: true, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.", + MarkdownDescription: "Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "base_uri": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Object{ + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4647,12 +4731,20 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: false, Computed: false, }, + + "project": schema.StringAttribute{ + Description: "Project is the name of the Pulumi ESC project the environment belongs to.", + MarkdownDescription: "Project is the name of the Pulumi ESC project the environment belongs to.", + Required: true, + Optional: false, + Computed: false, + }, }, Required: false, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4788,7 +4880,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4908,7 +5000,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4994,7 +5086,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -5946,7 +6038,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -6123,7 +6215,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -6227,7 +6319,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -6331,7 +6423,7 @@ func (r *ExternalSecretsIoClusterSecretStoreV1Beta1Manifest) Schema(_ context.Co Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager")), }, }, }, diff --git a/internal/provider/external_secrets_io_v1beta1/external_secrets_io_secret_store_v1beta1_manifest.go b/internal/provider/external_secrets_io_v1beta1/external_secrets_io_secret_store_v1beta1_manifest.go index 10a94b543..f5abcb64f 100644 --- a/internal/provider/external_secrets_io_v1beta1/external_secrets_io_secret_store_v1beta1_manifest.go +++ b/internal/provider/external_secrets_io_v1beta1/external_secrets_io_secret_store_v1beta1_manifest.go @@ -603,6 +603,18 @@ type ExternalSecretsIoSecretStoreV1Beta1ManifestData struct { Database *string `tfsdk:"database" json:"database,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` } `tfsdk:"passworddepot" json:"passworddepot,omitempty"` + Previder *struct { + Auth *struct { + SecretRef *struct { + AccessToken *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + } `tfsdk:"access_token" json:"accessToken,omitempty"` + } `tfsdk:"secret_ref" json:"secretRef,omitempty"` + } `tfsdk:"auth" json:"auth,omitempty"` + BaseUri *string `tfsdk:"base_uri" json:"baseUri,omitempty"` + } `tfsdk:"previder" json:"previder,omitempty"` Pulumi *struct { AccessToken *struct { SecretRef *struct { @@ -614,6 +626,7 @@ type ExternalSecretsIoSecretStoreV1Beta1ManifestData struct { ApiUrl *string `tfsdk:"api_url" json:"apiUrl,omitempty"` Environment *string `tfsdk:"environment" json:"environment,omitempty"` Organization *string `tfsdk:"organization" json:"organization,omitempty"` + Project *string `tfsdk:"project" json:"project,omitempty"` } `tfsdk:"pulumi" json:"pulumi,omitempty"` Scaleway *struct { AccessKey *struct { @@ -1332,7 +1345,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -1477,7 +1490,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -1762,7 +1775,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -1995,7 +2008,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2265,7 +2278,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2420,7 +2433,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2499,7 +2512,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2763,7 +2776,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2899,7 +2912,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -2970,7 +2983,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3071,7 +3084,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3127,7 +3140,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3189,7 +3202,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3335,7 +3348,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3439,7 +3452,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3549,7 +3562,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3686,7 +3699,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -3739,7 +3752,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4033,7 +4046,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4144,7 +4157,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4224,7 +4237,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4413,7 +4426,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4508,7 +4521,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4587,7 +4600,78 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + }, + }, + + "previder": schema.SingleNestedAttribute{ + Description: "Previder configures this store to sync secrets using the Previder provider", + MarkdownDescription: "Previder configures this store to sync secrets using the Previder provider", + Attributes: map[string]schema.Attribute{ + "auth": schema.SingleNestedAttribute{ + Description: "PreviderAuth contains a secretRef for credentials.", + MarkdownDescription: "PreviderAuth contains a secretRef for credentials.", + Attributes: map[string]schema.Attribute{ + "secret_ref": schema.SingleNestedAttribute{ + Description: "PreviderAuthSecretRef holds secret references for Previder Vault credentials.", + MarkdownDescription: "PreviderAuthSecretRef holds secret references for Previder Vault credentials.", + Attributes: map[string]schema.Attribute{ + "access_token": schema.SingleNestedAttribute{ + Description: "The AccessToken is used for authentication", + MarkdownDescription: "The AccessToken is used for authentication", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the entry in the Secret resource's 'data' field to be used. Some instances of this field may be defaulted, in others it may be required.", + MarkdownDescription: "The key of the entry in the Secret resource's 'data' field to be used. Some instances of this field may be defaulted, in others it may be required.", + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "The name of the Secret resource being referred to.", + MarkdownDescription: "The name of the Secret resource being referred to.", + Required: false, + Optional: true, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.", + MarkdownDescription: "Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "base_uri": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Object{ + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4660,12 +4744,20 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "project": schema.StringAttribute{ + Description: "Project is the name of the Pulumi ESC project the environment belongs to.", + MarkdownDescription: "Project is the name of the Pulumi ESC project the environment belongs to.", + Required: true, + Optional: false, + Computed: false, + }, }, Required: false, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4801,7 +4893,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -4921,7 +5013,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -5007,7 +5099,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -5959,7 +6051,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -6136,7 +6228,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -6240,7 +6332,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexlockbox")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexlockbox")), }, }, @@ -6344,7 +6436,7 @@ func (r *ExternalSecretsIoSecretStoreV1Beta1Manifest) Schema(_ context.Context, Optional: true, Computed: false, Validators: []validator.Object{ - objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager")), + objectvalidator.ExactlyOneOf(path.MatchRelative().AtParent().AtName("akeyless"), path.MatchRelative().AtParent().AtName("alibaba"), path.MatchRelative().AtParent().AtName("aws"), path.MatchRelative().AtParent().AtName("azurekv"), path.MatchRelative().AtParent().AtName("beyondtrust"), path.MatchRelative().AtParent().AtName("bitwardensecretsmanager"), path.MatchRelative().AtParent().AtName("chef"), path.MatchRelative().AtParent().AtName("conjur"), path.MatchRelative().AtParent().AtName("delinea"), path.MatchRelative().AtParent().AtName("device42"), path.MatchRelative().AtParent().AtName("doppler"), path.MatchRelative().AtParent().AtName("fake"), path.MatchRelative().AtParent().AtName("fortanix"), path.MatchRelative().AtParent().AtName("gcpsm"), path.MatchRelative().AtParent().AtName("gitlab"), path.MatchRelative().AtParent().AtName("ibm"), path.MatchRelative().AtParent().AtName("infisical"), path.MatchRelative().AtParent().AtName("keepersecurity"), path.MatchRelative().AtParent().AtName("kubernetes"), path.MatchRelative().AtParent().AtName("onboardbase"), path.MatchRelative().AtParent().AtName("onepassword"), path.MatchRelative().AtParent().AtName("oracle"), path.MatchRelative().AtParent().AtName("passbolt"), path.MatchRelative().AtParent().AtName("passworddepot"), path.MatchRelative().AtParent().AtName("previder"), path.MatchRelative().AtParent().AtName("pulumi"), path.MatchRelative().AtParent().AtName("scaleway"), path.MatchRelative().AtParent().AtName("secretserver"), path.MatchRelative().AtParent().AtName("senhasegura"), path.MatchRelative().AtParent().AtName("vault"), path.MatchRelative().AtParent().AtName("webhook"), path.MatchRelative().AtParent().AtName("yandexcertificatemanager")), }, }, }, diff --git a/internal/provider/fluentbit_fluent_io_v1alpha2/fluentbit_fluent_io_cluster_input_v1alpha2_manifest.go b/internal/provider/fluentbit_fluent_io_v1alpha2/fluentbit_fluent_io_cluster_input_v1alpha2_manifest.go index 378245d48..0c3da1ff1 100644 --- a/internal/provider/fluentbit_fluent_io_v1alpha2/fluentbit_fluent_io_cluster_input_v1alpha2_manifest.go +++ b/internal/provider/fluentbit_fluent_io_v1alpha2/fluentbit_fluent_io_cluster_input_v1alpha2_manifest.go @@ -225,6 +225,7 @@ type FluentbitFluentIoClusterInputV1Alpha2ManifestData struct { ReadFromHead *bool `tfsdk:"read_from_head" json:"readFromHead,omitempty"` RefreshIntervalSeconds *int64 `tfsdk:"refresh_interval_seconds" json:"refreshIntervalSeconds,omitempty"` RotateWaitSeconds *int64 `tfsdk:"rotate_wait_seconds" json:"rotateWaitSeconds,omitempty"` + SkipEmptyLines *bool `tfsdk:"skip_empty_lines" json:"skipEmptyLines,omitempty"` SkipLongLines *bool `tfsdk:"skip_long_lines" json:"skipLongLines,omitempty"` StorageType *string `tfsdk:"storage_type" json:"storageType,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` @@ -1732,6 +1733,14 @@ func (r *FluentbitFluentIoClusterInputV1Alpha2Manifest) Schema(_ context.Context Computed: false, }, + "skip_empty_lines": schema.BoolAttribute{ + Description: "Skips empty lines in the log file from any further processing or output.", + MarkdownDescription: "Skips empty lines in the log file from any further processing or output.", + Required: false, + Optional: true, + Computed: false, + }, + "skip_long_lines": schema.BoolAttribute{ Description: "When a monitored file reach it buffer capacity due to a very long line (Buffer_Max_Size), the default behavior is to stop monitoring that file. Skip_Long_Lines alter that behavior and instruct Fluent Bit to skip long lines and continue processing other lines that fits into the buffer size.", MarkdownDescription: "When a monitored file reach it buffer capacity due to a very long line (Buffer_Max_Size), the default behavior is to stop monitoring that file. Skip_Long_Lines alter that behavior and instruct Fluent Bit to skip long lines and continue processing other lines that fits into the buffer size.", diff --git a/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_gateway_v1_manifest.go b/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_gateway_v1_manifest.go index 3ccdae3c7..eae837c3b 100644 --- a/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_gateway_v1_manifest.go +++ b/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_gateway_v1_manifest.go @@ -49,14 +49,6 @@ type GatewayNetworkingK8SIoGatewayV1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"addresses" json:"addresses,omitempty"` - BackendTLS *struct { - ClientCertificateRef *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"client_certificate_ref" json:"clientCertificateRef,omitempty"` - } `tfsdk:"backend_tls" json:"backendTLS,omitempty"` GatewayClassName *string `tfsdk:"gateway_class_name" json:"gatewayClassName,omitempty"` Infrastructure *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -96,14 +88,6 @@ type GatewayNetworkingK8SIoGatewayV1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"certificate_refs" json:"certificateRefs,omitempty"` - FrontendValidation *struct { - CaCertificateRefs *[]struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"ca_certificate_refs" json:"caCertificateRefs,omitempty"` - } `tfsdk:"frontend_validation" json:"frontendValidation,omitempty"` Mode *string `tfsdk:"mode" json:"mode,omitempty"` Options *map[string]string `tfsdk:"options" json:"options,omitempty"` } `tfsdk:"tls" json:"tls,omitempty"` @@ -224,74 +208,6 @@ func (r *GatewayNetworkingK8SIoGatewayV1Manifest) Schema(_ context.Context, _ da Computed: false, }, - "backend_tls": schema.SingleNestedAttribute{ - Description: "BackendTLS configures TLS settings for when this Gateway is connecting to backends with TLS. Support: Core ", - MarkdownDescription: "BackendTLS configures TLS settings for when this Gateway is connecting to backends with TLS. Support: Core ", - Attributes: map[string]schema.Attribute{ - "client_certificate_ref": schema.SingleNestedAttribute{ - Description: "ClientCertificateRef is a reference to an object that contains a Client Certificate and the associated private key. References to a resource in different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason. ClientCertificateRef can reference to standard Kubernetes resources, i.e. Secret, or implementation-specific custom resources. This setting can be overridden on the service level by use of BackendTLSPolicy. Support: Core ", - MarkdownDescription: "ClientCertificateRef is a reference to an object that contains a Client Certificate and the associated private key. References to a resource in different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason. ClientCertificateRef can reference to standard Kubernetes resources, i.e. Secret, or implementation-specific custom resources. This setting can be overridden on the service level by use of BackendTLSPolicy. Support: Core ", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - MarkdownDescription: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is kind of the referent. For example 'Secret'.", - MarkdownDescription: "Kind is kind of the referent. For example 'Secret'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`), ""), - }, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of the referent.", - MarkdownDescription: "Name is the name of the referent.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - }, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`), ""), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "gateway_class_name": schema.StringAttribute{ Description: "GatewayClassName used for this Gateway. This is the name of a GatewayClass resource.", MarkdownDescription: "GatewayClassName used for this Gateway. This is the name of a GatewayClass resource.", @@ -617,76 +533,6 @@ func (r *GatewayNetworkingK8SIoGatewayV1Manifest) Schema(_ context.Context, _ da Computed: false, }, - "frontend_validation": schema.SingleNestedAttribute{ - Description: "FrontendValidation holds configuration information for validating the frontend (client). Setting this field will require clients to send a client certificate required for validation during the TLS handshake. In browsers this may result in a dialog appearing that requests a user to specify the client certificate. The maximum depth of a certificate chain accepted in verification is Implementation specific. Support: Extended ", - MarkdownDescription: "FrontendValidation holds configuration information for validating the frontend (client). Setting this field will require clients to send a client certificate required for validation during the TLS handshake. In browsers this may result in a dialog appearing that requests a user to specify the client certificate. The maximum depth of a certificate chain accepted in verification is Implementation specific. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "ca_certificate_refs": schema.ListNestedAttribute{ - Description: "CACertificateRefs contains one or more references to Kubernetes objects that contain TLS certificates of the Certificate Authorities that can be used as a trust anchor to validate the certificates presented by the client. A single CA certificate reference to a Kubernetes ConfigMap has 'Core' support. Implementations MAY choose to support attaching multiple CA certificates to a Listener, but this behavior is implementation-specific. Support: Core - A single reference to a Kubernetes ConfigMap with the CA certificate in a key named 'ca.crt'. Support: Implementation-specific (More than one reference, or other kinds of resources). References to a resource in a different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason.", - MarkdownDescription: "CACertificateRefs contains one or more references to Kubernetes objects that contain TLS certificates of the Certificate Authorities that can be used as a trust anchor to validate the certificates presented by the client. A single CA certificate reference to a Kubernetes ConfigMap has 'Core' support. Implementations MAY choose to support attaching multiple CA certificates to a Listener, but this behavior is implementation-specific. Support: Core - A single reference to a Kubernetes ConfigMap with the CA certificate in a key named 'ca.crt'. Support: Implementation-specific (More than one reference, or other kinds of resources). References to a resource in a different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - MarkdownDescription: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is kind of the referent. For example 'ConfigMap' or 'Service'.", - MarkdownDescription: "Kind is kind of the referent. For example 'ConfigMap' or 'Service'.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`), ""), - }, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of the referent.", - MarkdownDescription: "Name is the name of the referent.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - }, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`), ""), - }, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "mode": schema.StringAttribute{ Description: "Mode defines the TLS behavior for the TLS session initiated by the client. There are two possible modes: - Terminate: The TLS session between the downstream client and the Gateway is terminated at the Gateway. This mode requires certificates to be specified in some way, such as populating the certificateRefs field. - Passthrough: The TLS session is NOT terminated by the Gateway. This implies that the Gateway can't decipher the TLS stream except for the ClientHello message of the TLS protocol. The certificateRefs field is ignored in this mode. Support: Core", MarkdownDescription: "Mode defines the TLS behavior for the TLS session initiated by the client. There are two possible modes: - Terminate: The TLS session between the downstream client and the Gateway is terminated at the Gateway. This mode requires certificates to be specified in some way, such as populating the certificateRefs field. - Passthrough: The TLS session is NOT terminated by the Gateway. This implies that the Gateway can't decipher the TLS stream except for the ClientHello message of the TLS protocol. The certificateRefs field is ignored in this mode. Support: Core", diff --git a/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_grpc_route_v1_manifest.go b/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_grpc_route_v1_manifest.go index 3e0593d57..3c46342f9 100644 --- a/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_grpc_route_v1_manifest.go +++ b/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_grpc_route_v1_manifest.go @@ -81,11 +81,6 @@ type GatewayNetworkingK8SIoGrpcrouteV1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` ResponseHeaderModifier *struct { Add *[]struct { @@ -132,11 +127,6 @@ type GatewayNetworkingK8SIoGrpcrouteV1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` ResponseHeaderModifier *struct { Add *[]struct { @@ -163,16 +153,6 @@ type GatewayNetworkingK8SIoGrpcrouteV1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"method" json:"method,omitempty"` } `tfsdk:"matches" json:"matches,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - SessionPersistence *struct { - AbsoluteTimeout *string `tfsdk:"absolute_timeout" json:"absoluteTimeout,omitempty"` - CookieConfig *struct { - LifetimeType *string `tfsdk:"lifetime_type" json:"lifetimeType,omitempty"` - } `tfsdk:"cookie_config" json:"cookieConfig,omitempty"` - IdleTimeout *string `tfsdk:"idle_timeout" json:"idleTimeout,omitempty"` - SessionName *string `tfsdk:"session_name" json:"sessionName,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"session_persistence" json:"sessionPersistence,omitempty"` } `tfsdk:"rules" json:"rules,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } @@ -264,8 +244,8 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Manifest) Schema(_ context.Context, _ }, "parent_refs": schema.ListNestedAttribute{ - Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", - MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", + Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", + MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "group": schema.StringAttribute{ @@ -306,8 +286,8 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Manifest) Schema(_ context.Context, _ }, "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", + Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", + MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", Required: false, Optional: true, Computed: false, @@ -319,8 +299,8 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Manifest) Schema(_ context.Context, _ }, "port": schema.Int64Attribute{ - Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", - MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", Required: false, Optional: true, Computed: false, @@ -574,49 +554,6 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1025,49 +962,6 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1280,92 +1174,6 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Manifest) Schema(_ context.Context, _ Optional: true, Computed: false, }, - - "name": schema.StringAttribute{ - Description: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - MarkdownDescription: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "session_persistence": schema.SingleNestedAttribute{ - Description: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - MarkdownDescription: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "absolute_timeout": schema.StringAttribute{ - Description: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - MarkdownDescription: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "cookie_config": schema.SingleNestedAttribute{ - Description: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - MarkdownDescription: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - Attributes: map[string]schema.Attribute{ - "lifetime_type": schema.StringAttribute{ - Description: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - MarkdownDescription: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Permanent", "Session"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "idle_timeout": schema.StringAttribute{ - Description: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - MarkdownDescription: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "session_name": schema.StringAttribute{ - Description: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - MarkdownDescription: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(128), - }, - }, - - "type": schema.StringAttribute{ - Description: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - MarkdownDescription: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Cookie", "Header"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, }, }, Required: false, diff --git a/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_http_route_v1_manifest.go b/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_http_route_v1_manifest.go index 34fee82da..2eee5221c 100644 --- a/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_http_route_v1_manifest.go +++ b/internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_http_route_v1_manifest.go @@ -81,11 +81,6 @@ type GatewayNetworkingK8SIoHttprouteV1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` RequestRedirect *struct { Hostname *string `tfsdk:"hostname" json:"hostname,omitempty"` @@ -151,11 +146,6 @@ type GatewayNetworkingK8SIoHttprouteV1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` RequestRedirect *struct { Hostname *string `tfsdk:"hostname" json:"hostname,omitempty"` @@ -206,21 +196,6 @@ type GatewayNetworkingK8SIoHttprouteV1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"query_params" json:"queryParams,omitempty"` } `tfsdk:"matches" json:"matches,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Retry *struct { - Attempts *int64 `tfsdk:"attempts" json:"attempts,omitempty"` - Backoff *string `tfsdk:"backoff" json:"backoff,omitempty"` - Codes *[]string `tfsdk:"codes" json:"codes,omitempty"` - } `tfsdk:"retry" json:"retry,omitempty"` - SessionPersistence *struct { - AbsoluteTimeout *string `tfsdk:"absolute_timeout" json:"absoluteTimeout,omitempty"` - CookieConfig *struct { - LifetimeType *string `tfsdk:"lifetime_type" json:"lifetimeType,omitempty"` - } `tfsdk:"cookie_config" json:"cookieConfig,omitempty"` - IdleTimeout *string `tfsdk:"idle_timeout" json:"idleTimeout,omitempty"` - SessionName *string `tfsdk:"session_name" json:"sessionName,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"session_persistence" json:"sessionPersistence,omitempty"` Timeouts *struct { BackendRequest *string `tfsdk:"backend_request" json:"backendRequest,omitempty"` Request *string `tfsdk:"request" json:"request,omitempty"` @@ -316,8 +291,8 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Manifest) Schema(_ context.Context, _ }, "parent_refs": schema.ListNestedAttribute{ - Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", - MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", + Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", + MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "group": schema.StringAttribute{ @@ -358,8 +333,8 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Manifest) Schema(_ context.Context, _ }, "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", + Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", + MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", Required: false, Optional: true, Computed: false, @@ -371,8 +346,8 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Manifest) Schema(_ context.Context, _ }, "port": schema.Int64Attribute{ - Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", - MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", Required: false, Optional: true, Computed: false, @@ -626,49 +601,6 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1239,49 +1171,6 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1704,129 +1593,6 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Manifest) Schema(_ context.Context, _ Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - MarkdownDescription: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "retry": schema.SingleNestedAttribute{ - Description: "Retry defines the configuration for when to retry an HTTP request. Support: Extended ", - MarkdownDescription: "Retry defines the configuration for when to retry an HTTP request. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "attempts": schema.Int64Attribute{ - Description: "Attempts specifies the maxmimum number of times an individual request from the gateway to a backend should be retried. If the maximum number of retries has been attempted without a successful response from the backend, the Gateway MUST return an error. When this field is unspecified, the number of times to attempt to retry a backend request is implementation-specific. Support: Extended", - MarkdownDescription: "Attempts specifies the maxmimum number of times an individual request from the gateway to a backend should be retried. If the maximum number of retries has been attempted without a successful response from the backend, the Gateway MUST return an error. When this field is unspecified, the number of times to attempt to retry a backend request is implementation-specific. Support: Extended", - Required: false, - Optional: true, - Computed: false, - }, - - "backoff": schema.StringAttribute{ - Description: "Backoff specifies the minimum duration a Gateway should wait between retry attempts and is represented in Gateway API Duration formatting. For example, setting the 'rules[].retry.backoff' field to the value '100ms' will cause a backend request to first be retried approximately 100 milliseconds after timing out or receiving a response code configured to be retryable. An implementation MAY use an exponential or alternative backoff strategy for subsequent retry attempts, MAY cap the maximum backoff duration to some amount greater than the specified minimum, and MAY add arbitrary jitter to stagger requests, as long as unsuccessful backend requests are not retried before the configured minimum duration. If a Request timeout ('rules[].timeouts.request') is configured on the route, the entire duration of the initial request and any retry attempts MUST not exceed the Request timeout duration. If any retry attempts are still in progress when the Request timeout duration has been reached, these SHOULD be canceled if possible and the Gateway MUST immediately return a timeout error. If a BackendRequest timeout ('rules[].timeouts.backendRequest') is configured on the route, any retry attempts which reach the configured BackendRequest timeout duration without a response SHOULD be canceled if possible and the Gateway should wait for at least the specified backoff duration before attempting to retry the backend request again. If a BackendRequest timeout is _not_ configured on the route, retry attempts MAY time out after an implementation default duration, or MAY remain pending until a configured Request timeout or implementation default duration for total request time is reached. When this field is unspecified, the time to wait between retry attempts is implementation-specific. Support: Extended", - MarkdownDescription: "Backoff specifies the minimum duration a Gateway should wait between retry attempts and is represented in Gateway API Duration formatting. For example, setting the 'rules[].retry.backoff' field to the value '100ms' will cause a backend request to first be retried approximately 100 milliseconds after timing out or receiving a response code configured to be retryable. An implementation MAY use an exponential or alternative backoff strategy for subsequent retry attempts, MAY cap the maximum backoff duration to some amount greater than the specified minimum, and MAY add arbitrary jitter to stagger requests, as long as unsuccessful backend requests are not retried before the configured minimum duration. If a Request timeout ('rules[].timeouts.request') is configured on the route, the entire duration of the initial request and any retry attempts MUST not exceed the Request timeout duration. If any retry attempts are still in progress when the Request timeout duration has been reached, these SHOULD be canceled if possible and the Gateway MUST immediately return a timeout error. If a BackendRequest timeout ('rules[].timeouts.backendRequest') is configured on the route, any retry attempts which reach the configured BackendRequest timeout duration without a response SHOULD be canceled if possible and the Gateway should wait for at least the specified backoff duration before attempting to retry the backend request again. If a BackendRequest timeout is _not_ configured on the route, retry attempts MAY time out after an implementation default duration, or MAY remain pending until a configured Request timeout or implementation default duration for total request time is reached. When this field is unspecified, the time to wait between retry attempts is implementation-specific. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "codes": schema.ListAttribute{ - Description: "Codes defines the HTTP response status codes for which a backend request should be retried. Support: Extended", - MarkdownDescription: "Codes defines the HTTP response status codes for which a backend request should be retried. Support: Extended", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "session_persistence": schema.SingleNestedAttribute{ - Description: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - MarkdownDescription: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "absolute_timeout": schema.StringAttribute{ - Description: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - MarkdownDescription: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "cookie_config": schema.SingleNestedAttribute{ - Description: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - MarkdownDescription: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - Attributes: map[string]schema.Attribute{ - "lifetime_type": schema.StringAttribute{ - Description: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - MarkdownDescription: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Permanent", "Session"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "idle_timeout": schema.StringAttribute{ - Description: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - MarkdownDescription: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "session_name": schema.StringAttribute{ - Description: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - MarkdownDescription: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(128), - }, - }, - - "type": schema.StringAttribute{ - Description: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - MarkdownDescription: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Cookie", "Header"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "timeouts": schema.SingleNestedAttribute{ Description: "Timeouts defines the timeouts that can be configured for an HTTP request. Support: Extended", MarkdownDescription: "Timeouts defines the timeouts that can be configured for an HTTP request. Support: Extended", diff --git a/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.go b/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.go new file mode 100644 index 000000000..e7d287294 --- /dev/null +++ b/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.go @@ -0,0 +1,290 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package gateway_networking_k8s_io_v1alpha2 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "regexp" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest{} +) + +func NewGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest() datasource.DataSource { + return &GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest{} +} + +type GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest struct{} + +type GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Namespace string `tfsdk:"namespace" json:"namespace"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + SessionPersistence *struct { + AbsoluteTimeout *string `tfsdk:"absolute_timeout" json:"absoluteTimeout,omitempty"` + CookieConfig *struct { + LifetimeType *string `tfsdk:"lifetime_type" json:"lifetimeType,omitempty"` + } `tfsdk:"cookie_config" json:"cookieConfig,omitempty"` + IdleTimeout *string `tfsdk:"idle_timeout" json:"idleTimeout,omitempty"` + SessionName *string `tfsdk:"session_name" json:"sessionName,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"session_persistence" json:"sessionPersistence,omitempty"` + TargetRefs *[]struct { + Group *string `tfsdk:"group" json:"group,omitempty"` + Kind *string `tfsdk:"kind" json:"kind,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"target_refs" json:"targetRefs,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest" +} + +func (r *GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "BackendLBPolicy provides a way to define load balancing rules for a backend.", + MarkdownDescription: "BackendLBPolicy provides a way to define load balancing rules for a backend.", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + MarkdownDescription: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "Spec defines the desired state of BackendLBPolicy.", + MarkdownDescription: "Spec defines the desired state of BackendLBPolicy.", + Attributes: map[string]schema.Attribute{ + "session_persistence": schema.SingleNestedAttribute{ + Description: "SessionPersistence defines and configures session persistence for the backend. Support: Extended", + MarkdownDescription: "SessionPersistence defines and configures session persistence for the backend. Support: Extended", + Attributes: map[string]schema.Attribute{ + "absolute_timeout": schema.StringAttribute{ + Description: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", + MarkdownDescription: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), + }, + }, + + "cookie_config": schema.SingleNestedAttribute{ + Description: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", + MarkdownDescription: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", + Attributes: map[string]schema.Attribute{ + "lifetime_type": schema.StringAttribute{ + Description: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", + MarkdownDescription: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Permanent", "Session"), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "idle_timeout": schema.StringAttribute{ + Description: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", + MarkdownDescription: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), + }, + }, + + "session_name": schema.StringAttribute{ + Description: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", + MarkdownDescription: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtMost(128), + }, + }, + + "type": schema.StringAttribute{ + Description: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", + MarkdownDescription: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Cookie", "Header"), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "target_refs": schema.ListNestedAttribute{ + Description: "TargetRef identifies an API object to apply policy to. Currently, Backends (i.e. Service, ServiceImport, or any implementation-specific backendRef) are the only valid API target references.", + MarkdownDescription: "TargetRef identifies an API object to apply policy to. Currently, Backends (i.e. Service, ServiceImport, or any implementation-specific backendRef) are the only valid API target references.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "group": schema.StringAttribute{ + Description: "Group is the group of the target resource.", + MarkdownDescription: "Group is the group of the target resource.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + + "kind": schema.StringAttribute{ + Description: "Kind is kind of the target resource.", + MarkdownDescription: "Kind is kind of the target resource.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(63), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`), ""), + }, + }, + + "name": schema.StringAttribute{ + Description: "Name is the name of the target resource.", + MarkdownDescription: "Name is the name of the target resource.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(253), + }, + }, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + } +} + +func (r *GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest") + + var model GatewayNetworkingK8SIoBackendLbpolicyV1Alpha2ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("gateway.networking.k8s.io/v1alpha2") + model.Kind = pointer.String("BackendLBPolicy") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go b/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go new file mode 100644 index 000000000..91390ee20 --- /dev/null +++ b/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package gateway_networking_k8s_io_v1alpha2_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1alpha2" + "testing" +) + +func TestGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest.go b/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest.go index 59f46be78..96baf64f3 100644 --- a/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest.go +++ b/internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest.go @@ -81,11 +81,6 @@ type GatewayNetworkingK8SIoGrpcrouteV1Alpha2ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` ResponseHeaderModifier *struct { Add *[]struct { @@ -132,11 +127,6 @@ type GatewayNetworkingK8SIoGrpcrouteV1Alpha2ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` ResponseHeaderModifier *struct { Add *[]struct { @@ -163,16 +153,6 @@ type GatewayNetworkingK8SIoGrpcrouteV1Alpha2ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"method" json:"method,omitempty"` } `tfsdk:"matches" json:"matches,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - SessionPersistence *struct { - AbsoluteTimeout *string `tfsdk:"absolute_timeout" json:"absoluteTimeout,omitempty"` - CookieConfig *struct { - LifetimeType *string `tfsdk:"lifetime_type" json:"lifetimeType,omitempty"` - } `tfsdk:"cookie_config" json:"cookieConfig,omitempty"` - IdleTimeout *string `tfsdk:"idle_timeout" json:"idleTimeout,omitempty"` - SessionName *string `tfsdk:"session_name" json:"sessionName,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"session_persistence" json:"sessionPersistence,omitempty"` } `tfsdk:"rules" json:"rules,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } @@ -264,8 +244,8 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Alpha2Manifest) Schema(_ context.Conte }, "parent_refs": schema.ListNestedAttribute{ - Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", - MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", + Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", + MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "group": schema.StringAttribute{ @@ -306,8 +286,8 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Alpha2Manifest) Schema(_ context.Conte }, "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", + Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", + MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", Required: false, Optional: true, Computed: false, @@ -319,8 +299,8 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Alpha2Manifest) Schema(_ context.Conte }, "port": schema.Int64Attribute{ - Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", - MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", Required: false, Optional: true, Computed: false, @@ -574,49 +554,6 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Alpha2Manifest) Schema(_ context.Conte Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1025,49 +962,6 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Alpha2Manifest) Schema(_ context.Conte Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1280,92 +1174,6 @@ func (r *GatewayNetworkingK8SIoGrpcrouteV1Alpha2Manifest) Schema(_ context.Conte Optional: true, Computed: false, }, - - "name": schema.StringAttribute{ - Description: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - MarkdownDescription: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "session_persistence": schema.SingleNestedAttribute{ - Description: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - MarkdownDescription: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "absolute_timeout": schema.StringAttribute{ - Description: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - MarkdownDescription: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "cookie_config": schema.SingleNestedAttribute{ - Description: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - MarkdownDescription: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - Attributes: map[string]schema.Attribute{ - "lifetime_type": schema.StringAttribute{ - Description: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - MarkdownDescription: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Permanent", "Session"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "idle_timeout": schema.StringAttribute{ - Description: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - MarkdownDescription: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "session_name": schema.StringAttribute{ - Description: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - MarkdownDescription: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(128), - }, - }, - - "type": schema.StringAttribute{ - Description: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - MarkdownDescription: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Cookie", "Header"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, }, }, Required: false, diff --git a/internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.go b/internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.go new file mode 100644 index 000000000..c70b8a5a5 --- /dev/null +++ b/internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.go @@ -0,0 +1,375 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package gateway_networking_k8s_io_v1alpha3 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "regexp" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest{} +) + +func NewGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest() datasource.DataSource { + return &GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest{} +} + +type GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest struct{} + +type GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Namespace string `tfsdk:"namespace" json:"namespace"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + Options *map[string]string `tfsdk:"options" json:"options,omitempty"` + TargetRefs *[]struct { + Group *string `tfsdk:"group" json:"group,omitempty"` + Kind *string `tfsdk:"kind" json:"kind,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + SectionName *string `tfsdk:"section_name" json:"sectionName,omitempty"` + } `tfsdk:"target_refs" json:"targetRefs,omitempty"` + Validation *struct { + CaCertificateRefs *[]struct { + Group *string `tfsdk:"group" json:"group,omitempty"` + Kind *string `tfsdk:"kind" json:"kind,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"ca_certificate_refs" json:"caCertificateRefs,omitempty"` + Hostname *string `tfsdk:"hostname" json:"hostname,omitempty"` + SubjectAltNames *[]struct { + Hostname *string `tfsdk:"hostname" json:"hostname,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + Uri *string `tfsdk:"uri" json:"uri,omitempty"` + } `tfsdk:"subject_alt_names" json:"subjectAltNames,omitempty"` + WellKnownCACertificates *string `tfsdk:"well_known_ca_certificates" json:"wellKnownCACertificates,omitempty"` + } `tfsdk:"validation" json:"validation,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest" +} + +func (r *GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "BackendTLSPolicy provides a way to configure how a Gateway connects to a Backend via TLS.", + MarkdownDescription: "BackendTLSPolicy provides a way to configure how a Gateway connects to a Backend via TLS.", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + MarkdownDescription: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "Spec defines the desired state of BackendTLSPolicy.", + MarkdownDescription: "Spec defines the desired state of BackendTLSPolicy.", + Attributes: map[string]schema.Attribute{ + "options": schema.MapAttribute{ + Description: "Options are a list of key/value pairs to enable extended TLS configuration for each implementation. For example, configuring the minimum TLS version or supported cipher suites. A set of common keys MAY be defined by the API in the future. To avoid any ambiguity, implementation-specific definitions MUST use domain-prefixed names, such as 'example.com/my-custom-option'. Un-prefixed names are reserved for key names defined by Gateway API. Support: Implementation-specific", + MarkdownDescription: "Options are a list of key/value pairs to enable extended TLS configuration for each implementation. For example, configuring the minimum TLS version or supported cipher suites. A set of common keys MAY be defined by the API in the future. To avoid any ambiguity, implementation-specific definitions MUST use domain-prefixed names, such as 'example.com/my-custom-option'. Un-prefixed names are reserved for key names defined by Gateway API. Support: Implementation-specific", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "target_refs": schema.ListNestedAttribute{ + Description: "TargetRefs identifies an API object to apply the policy to. Only Services have Extended support. Implementations MAY support additional objects, with Implementation Specific support. Note that this config applies to the entire referenced resource by default, but this default may change in the future to provide a more granular application of the policy. Support: Extended for Kubernetes Service Support: Implementation-specific for any other resource", + MarkdownDescription: "TargetRefs identifies an API object to apply the policy to. Only Services have Extended support. Implementations MAY support additional objects, with Implementation Specific support. Note that this config applies to the entire referenced resource by default, but this default may change in the future to provide a more granular application of the policy. Support: Extended for Kubernetes Service Support: Implementation-specific for any other resource", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "group": schema.StringAttribute{ + Description: "Group is the group of the target resource.", + MarkdownDescription: "Group is the group of the target resource.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + + "kind": schema.StringAttribute{ + Description: "Kind is kind of the target resource.", + MarkdownDescription: "Kind is kind of the target resource.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(63), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`), ""), + }, + }, + + "name": schema.StringAttribute{ + Description: "Name is the name of the target resource.", + MarkdownDescription: "Name is the name of the target resource.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(253), + }, + }, + + "section_name": schema.StringAttribute{ + Description: "SectionName is the name of a section within the target resource. When unspecified, this targetRef targets the entire resource. In the following resources, SectionName is interpreted as the following: * Gateway: Listener name * HTTPRoute: HTTPRouteRule name * Service: Port name If a SectionName is specified, but does not exist on the targeted object, the Policy must fail to attach, and the policy implementation should record a 'ResolvedRefs' or similar Condition in the Policy's status.", + MarkdownDescription: "SectionName is the name of a section within the target resource. When unspecified, this targetRef targets the entire resource. In the following resources, SectionName is interpreted as the following: * Gateway: Listener name * HTTPRoute: HTTPRouteRule name * Service: Port name If a SectionName is specified, but does not exist on the targeted object, the Policy must fail to attach, and the policy implementation should record a 'ResolvedRefs' or similar Condition in the Policy's status.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "validation": schema.SingleNestedAttribute{ + Description: "Validation contains backend TLS validation configuration.", + MarkdownDescription: "Validation contains backend TLS validation configuration.", + Attributes: map[string]schema.Attribute{ + "ca_certificate_refs": schema.ListNestedAttribute{ + Description: "CACertificateRefs contains one or more references to Kubernetes objects that contain a PEM-encoded TLS CA certificate bundle, which is used to validate a TLS handshake between the Gateway and backend Pod. If CACertificateRefs is empty or unspecified, then WellKnownCACertificates must be specified. Only one of CACertificateRefs or WellKnownCACertificates may be specified, not both. If CACertifcateRefs is empty or unspecified, the configuration for WellKnownCACertificates MUST be honored instead if supported by the implementation. References to a resource in a different namespace are invalid for the moment, although we will revisit this in the future. A single CACertificateRef to a Kubernetes ConfigMap kind has 'Core' support. Implementations MAY choose to support attaching multiple certificates to a backend, but this behavior is implementation-specific. Support: Core - An optional single reference to a Kubernetes ConfigMap, with the CA certificate in a key named 'ca.crt'. Support: Implementation-specific (More than one reference, or other kinds of resources).", + MarkdownDescription: "CACertificateRefs contains one or more references to Kubernetes objects that contain a PEM-encoded TLS CA certificate bundle, which is used to validate a TLS handshake between the Gateway and backend Pod. If CACertificateRefs is empty or unspecified, then WellKnownCACertificates must be specified. Only one of CACertificateRefs or WellKnownCACertificates may be specified, not both. If CACertifcateRefs is empty or unspecified, the configuration for WellKnownCACertificates MUST be honored instead if supported by the implementation. References to a resource in a different namespace are invalid for the moment, although we will revisit this in the future. A single CACertificateRef to a Kubernetes ConfigMap kind has 'Core' support. Implementations MAY choose to support attaching multiple certificates to a backend, but this behavior is implementation-specific. Support: Core - An optional single reference to a Kubernetes ConfigMap, with the CA certificate in a key named 'ca.crt'. Support: Implementation-specific (More than one reference, or other kinds of resources).", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "group": schema.StringAttribute{ + Description: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", + MarkdownDescription: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + + "kind": schema.StringAttribute{ + Description: "Kind is kind of the referent. For example 'HTTPRoute' or 'Service'.", + MarkdownDescription: "Kind is kind of the referent. For example 'HTTPRoute' or 'Service'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(63), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`), ""), + }, + }, + + "name": schema.StringAttribute{ + Description: "Name is the name of the referent.", + MarkdownDescription: "Name is the name of the referent.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(253), + }, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "hostname": schema.StringAttribute{ + Description: "Hostname is used for two purposes in the connection between Gateways and backends: 1. Hostname MUST be used as the SNI to connect to the backend (RFC 6066). 2. If SubjectAltNames is not specified, Hostname MUST be used for authentication and MUST match the certificate served by the matching backend. Support: Core", + MarkdownDescription: "Hostname is used for two purposes in the connection between Gateways and backends: 1. Hostname MUST be used as the SNI to connect to the backend (RFC 6066). 2. If SubjectAltNames is not specified, Hostname MUST be used for authentication and MUST match the certificate served by the matching backend. Support: Core", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + + "subject_alt_names": schema.ListNestedAttribute{ + Description: "SubjectAltNames contains one or more Subject Alternative Names. When specified, the certificate served from the backend MUST have at least one Subject Alternate Name matching one of the specified SubjectAltNames. Support: Core", + MarkdownDescription: "SubjectAltNames contains one or more Subject Alternative Names. When specified, the certificate served from the backend MUST have at least one Subject Alternate Name matching one of the specified SubjectAltNames. Support: Core", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostname": schema.StringAttribute{ + Description: "Hostname contains Subject Alternative Name specified in DNS name format. Required when Type is set to Hostname, ignored otherwise. Support: Core", + MarkdownDescription: "Hostname contains Subject Alternative Name specified in DNS name format. Required when Type is set to Hostname, ignored otherwise. Support: Core", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^(\*\.)?[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + + "type": schema.StringAttribute{ + Description: "Type determines the format of the Subject Alternative Name. Always required. Support: Core", + MarkdownDescription: "Type determines the format of the Subject Alternative Name. Always required. Support: Core", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Hostname", "URI"), + }, + }, + + "uri": schema.StringAttribute{ + Description: "URI contains Subject Alternative Name specified in a full URI format. It MUST include both a scheme (e.g., 'http' or 'ftp') and a scheme-specific-part. Common values include SPIFFE IDs like 'spiffe://mycluster.example.com/ns/myns/sa/svc1sa'. Required when Type is set to URI, ignored otherwise. Support: Core", + MarkdownDescription: "URI contains Subject Alternative Name specified in a full URI format. It MUST include both a scheme (e.g., 'http' or 'ftp') and a scheme-specific-part. Common values include SPIFFE IDs like 'spiffe://mycluster.example.com/ns/myns/sa/svc1sa'. Required when Type is set to URI, ignored otherwise. Support: Core", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^(([^:/?#]+):)(//([^/?#]*))([^?#]*)(\?([^#]*))?(#(.*))?`), ""), + }, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "well_known_ca_certificates": schema.StringAttribute{ + Description: "WellKnownCACertificates specifies whether system CA certificates may be used in the TLS handshake between the gateway and backend pod. If WellKnownCACertificates is unspecified or empty (''), then CACertificateRefs must be specified with at least one entry for a valid configuration. Only one of CACertificateRefs or WellKnownCACertificates may be specified, not both. If an implementation does not support the WellKnownCACertificates field or the value supplied is not supported, the Status Conditions on the Policy MUST be updated to include an Accepted: False Condition with Reason: Invalid. Support: Implementation-specific", + MarkdownDescription: "WellKnownCACertificates specifies whether system CA certificates may be used in the TLS handshake between the gateway and backend pod. If WellKnownCACertificates is unspecified or empty (''), then CACertificateRefs must be specified with at least one entry for a valid configuration. Only one of CACertificateRefs or WellKnownCACertificates may be specified, not both. If an implementation does not support the WellKnownCACertificates field or the value supplied is not supported, the Status Conditions on the Policy MUST be updated to include an Accepted: False Condition with Reason: Invalid. Support: Implementation-specific", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("System"), + }, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + } +} + +func (r *GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest") + + var model GatewayNetworkingK8SIoBackendTlspolicyV1Alpha3ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("gateway.networking.k8s.io/v1alpha3") + model.Kind = pointer.String("BackendTLSPolicy") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go b/internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go new file mode 100644 index 000000000..533c0ea0f --- /dev/null +++ b/internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package gateway_networking_k8s_io_v1alpha3_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1alpha3" + "testing" +) + +func TestGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + gateway_networking_k8s_io_v1alpha3.NewGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_v1beta1_manifest.go b/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_v1beta1_manifest.go index c706bdf6e..482a51cb4 100644 --- a/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_v1beta1_manifest.go +++ b/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_v1beta1_manifest.go @@ -49,14 +49,6 @@ type GatewayNetworkingK8SIoGatewayV1Beta1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"addresses" json:"addresses,omitempty"` - BackendTLS *struct { - ClientCertificateRef *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"client_certificate_ref" json:"clientCertificateRef,omitempty"` - } `tfsdk:"backend_tls" json:"backendTLS,omitempty"` GatewayClassName *string `tfsdk:"gateway_class_name" json:"gatewayClassName,omitempty"` Infrastructure *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -96,14 +88,6 @@ type GatewayNetworkingK8SIoGatewayV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"certificate_refs" json:"certificateRefs,omitempty"` - FrontendValidation *struct { - CaCertificateRefs *[]struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"ca_certificate_refs" json:"caCertificateRefs,omitempty"` - } `tfsdk:"frontend_validation" json:"frontendValidation,omitempty"` Mode *string `tfsdk:"mode" json:"mode,omitempty"` Options *map[string]string `tfsdk:"options" json:"options,omitempty"` } `tfsdk:"tls" json:"tls,omitempty"` @@ -224,74 +208,6 @@ func (r *GatewayNetworkingK8SIoGatewayV1Beta1Manifest) Schema(_ context.Context, Computed: false, }, - "backend_tls": schema.SingleNestedAttribute{ - Description: "BackendTLS configures TLS settings for when this Gateway is connecting to backends with TLS. Support: Core ", - MarkdownDescription: "BackendTLS configures TLS settings for when this Gateway is connecting to backends with TLS. Support: Core ", - Attributes: map[string]schema.Attribute{ - "client_certificate_ref": schema.SingleNestedAttribute{ - Description: "ClientCertificateRef is a reference to an object that contains a Client Certificate and the associated private key. References to a resource in different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason. ClientCertificateRef can reference to standard Kubernetes resources, i.e. Secret, or implementation-specific custom resources. This setting can be overridden on the service level by use of BackendTLSPolicy. Support: Core ", - MarkdownDescription: "ClientCertificateRef is a reference to an object that contains a Client Certificate and the associated private key. References to a resource in different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason. ClientCertificateRef can reference to standard Kubernetes resources, i.e. Secret, or implementation-specific custom resources. This setting can be overridden on the service level by use of BackendTLSPolicy. Support: Core ", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - MarkdownDescription: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is kind of the referent. For example 'Secret'.", - MarkdownDescription: "Kind is kind of the referent. For example 'Secret'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`), ""), - }, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of the referent.", - MarkdownDescription: "Name is the name of the referent.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - }, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`), ""), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "gateway_class_name": schema.StringAttribute{ Description: "GatewayClassName used for this Gateway. This is the name of a GatewayClass resource.", MarkdownDescription: "GatewayClassName used for this Gateway. This is the name of a GatewayClass resource.", @@ -617,76 +533,6 @@ func (r *GatewayNetworkingK8SIoGatewayV1Beta1Manifest) Schema(_ context.Context, Computed: false, }, - "frontend_validation": schema.SingleNestedAttribute{ - Description: "FrontendValidation holds configuration information for validating the frontend (client). Setting this field will require clients to send a client certificate required for validation during the TLS handshake. In browsers this may result in a dialog appearing that requests a user to specify the client certificate. The maximum depth of a certificate chain accepted in verification is Implementation specific. Support: Extended ", - MarkdownDescription: "FrontendValidation holds configuration information for validating the frontend (client). Setting this field will require clients to send a client certificate required for validation during the TLS handshake. In browsers this may result in a dialog appearing that requests a user to specify the client certificate. The maximum depth of a certificate chain accepted in verification is Implementation specific. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "ca_certificate_refs": schema.ListNestedAttribute{ - Description: "CACertificateRefs contains one or more references to Kubernetes objects that contain TLS certificates of the Certificate Authorities that can be used as a trust anchor to validate the certificates presented by the client. A single CA certificate reference to a Kubernetes ConfigMap has 'Core' support. Implementations MAY choose to support attaching multiple CA certificates to a Listener, but this behavior is implementation-specific. Support: Core - A single reference to a Kubernetes ConfigMap with the CA certificate in a key named 'ca.crt'. Support: Implementation-specific (More than one reference, or other kinds of resources). References to a resource in a different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason.", - MarkdownDescription: "CACertificateRefs contains one or more references to Kubernetes objects that contain TLS certificates of the Certificate Authorities that can be used as a trust anchor to validate the certificates presented by the client. A single CA certificate reference to a Kubernetes ConfigMap has 'Core' support. Implementations MAY choose to support attaching multiple CA certificates to a Listener, but this behavior is implementation-specific. Support: Core - A single reference to a Kubernetes ConfigMap with the CA certificate in a key named 'ca.crt'. Support: Implementation-specific (More than one reference, or other kinds of resources). References to a resource in a different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the 'ResolvedRefs' condition MUST be set to False for this listener with the 'RefNotPermitted' reason.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - MarkdownDescription: "Group is the group of the referent. For example, 'gateway.networking.k8s.io'. When unspecified or empty string, core API group is inferred.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is kind of the referent. For example 'ConfigMap' or 'Service'.", - MarkdownDescription: "Kind is kind of the referent. For example 'ConfigMap' or 'Service'.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`), ""), - }, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of the referent.", - MarkdownDescription: "Name is the name of the referent.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - }, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referenced object. When unspecified, the local namespace is inferred. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. Support: Core", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(63), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`), ""), - }, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "mode": schema.StringAttribute{ Description: "Mode defines the TLS behavior for the TLS session initiated by the client. There are two possible modes: - Terminate: The TLS session between the downstream client and the Gateway is terminated at the Gateway. This mode requires certificates to be specified in some way, such as populating the certificateRefs field. - Passthrough: The TLS session is NOT terminated by the Gateway. This implies that the Gateway can't decipher the TLS stream except for the ClientHello message of the TLS protocol. The certificateRefs field is ignored in this mode. Support: Core", MarkdownDescription: "Mode defines the TLS behavior for the TLS session initiated by the client. There are two possible modes: - Terminate: The TLS session between the downstream client and the Gateway is terminated at the Gateway. This mode requires certificates to be specified in some way, such as populating the certificateRefs field. - Passthrough: The TLS session is NOT terminated by the Gateway. This implies that the Gateway can't decipher the TLS stream except for the ClientHello message of the TLS protocol. The certificateRefs field is ignored in this mode. Support: Core", diff --git a/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_http_route_v1beta1_manifest.go b/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_http_route_v1beta1_manifest.go index 24b4629ce..7a6821524 100644 --- a/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_http_route_v1beta1_manifest.go +++ b/internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_http_route_v1beta1_manifest.go @@ -81,11 +81,6 @@ type GatewayNetworkingK8SIoHttprouteV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` RequestRedirect *struct { Hostname *string `tfsdk:"hostname" json:"hostname,omitempty"` @@ -151,11 +146,6 @@ type GatewayNetworkingK8SIoHttprouteV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"backend_ref" json:"backendRef,omitempty"` - Fraction *struct { - Denominator *int64 `tfsdk:"denominator" json:"denominator,omitempty"` - Numerator *int64 `tfsdk:"numerator" json:"numerator,omitempty"` - } `tfsdk:"fraction" json:"fraction,omitempty"` - Percent *int64 `tfsdk:"percent" json:"percent,omitempty"` } `tfsdk:"request_mirror" json:"requestMirror,omitempty"` RequestRedirect *struct { Hostname *string `tfsdk:"hostname" json:"hostname,omitempty"` @@ -206,21 +196,6 @@ type GatewayNetworkingK8SIoHttprouteV1Beta1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"query_params" json:"queryParams,omitempty"` } `tfsdk:"matches" json:"matches,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Retry *struct { - Attempts *int64 `tfsdk:"attempts" json:"attempts,omitempty"` - Backoff *string `tfsdk:"backoff" json:"backoff,omitempty"` - Codes *[]string `tfsdk:"codes" json:"codes,omitempty"` - } `tfsdk:"retry" json:"retry,omitempty"` - SessionPersistence *struct { - AbsoluteTimeout *string `tfsdk:"absolute_timeout" json:"absoluteTimeout,omitempty"` - CookieConfig *struct { - LifetimeType *string `tfsdk:"lifetime_type" json:"lifetimeType,omitempty"` - } `tfsdk:"cookie_config" json:"cookieConfig,omitempty"` - IdleTimeout *string `tfsdk:"idle_timeout" json:"idleTimeout,omitempty"` - SessionName *string `tfsdk:"session_name" json:"sessionName,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"session_persistence" json:"sessionPersistence,omitempty"` Timeouts *struct { BackendRequest *string `tfsdk:"backend_request" json:"backendRequest,omitempty"` Request *string `tfsdk:"request" json:"request,omitempty"` @@ -316,8 +291,8 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Beta1Manifest) Schema(_ context.Contex }, "parent_refs": schema.ListNestedAttribute{ - Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", - MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. ", + Description: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", + MarkdownDescription: "ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a 'producer' route, or the mesh implementation must support and allow 'consumer' routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a 'producer' route for a Service in a different namespace from the Route. There are two kinds of parent resources with 'Core' support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by 'group', 'kind', 'namespace', and 'name' must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets 'sectionName', all ParentRefs referencing the same object must also set 'sectionName'. * If one ParentRef sets 'port', all ParentRefs referencing the same object must also set 'port'. * If one ParentRef sets 'sectionName' and 'port', all ParentRefs referencing the same object must also set 'sectionName' and 'port'. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference. ", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "group": schema.StringAttribute{ @@ -358,8 +333,8 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Beta1Manifest) Schema(_ context.Contex }, "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", - MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. ParentRefs from a Route to a Service in the same namespace are 'producer' routes, which apply default routing rules to inbound connections from any namespace to the Service. ParentRefs from a Route to a Service in a different namespace are 'consumer' routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. Support: Core", + Description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", + MarkdownDescription: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. Support: Core", Required: false, Optional: true, Computed: false, @@ -371,8 +346,8 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Beta1Manifest) Schema(_ context.Contex }, "port": schema.Int64Attribute{ - Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", - MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + Description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", + MarkdownDescription: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set 'Port' unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. Support: Extended", Required: false, Optional: true, Computed: false, @@ -626,49 +601,6 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Beta1Manifest) Schema(_ context.Contex Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1239,49 +1171,6 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Beta1Manifest) Schema(_ context.Contex Optional: false, Computed: false, }, - - "fraction": schema.SingleNestedAttribute{ - Description: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Attributes: map[string]schema.Attribute{ - "denominator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(1), - }, - }, - - "numerator": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "percent": schema.Int64Attribute{ - Description: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - MarkdownDescription: "Percent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests). Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored. ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - int64validator.AtMost(100), - }, - }, }, Required: false, Optional: true, @@ -1704,129 +1593,6 @@ func (r *GatewayNetworkingK8SIoHttprouteV1Beta1Manifest) Schema(_ context.Contex Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - MarkdownDescription: "Name is the name of the route rule. This name MUST be unique within a Route if it is set. Support: Extended ", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - stringvalidator.LengthAtMost(253), - stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), - }, - }, - - "retry": schema.SingleNestedAttribute{ - Description: "Retry defines the configuration for when to retry an HTTP request. Support: Extended ", - MarkdownDescription: "Retry defines the configuration for when to retry an HTTP request. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "attempts": schema.Int64Attribute{ - Description: "Attempts specifies the maxmimum number of times an individual request from the gateway to a backend should be retried. If the maximum number of retries has been attempted without a successful response from the backend, the Gateway MUST return an error. When this field is unspecified, the number of times to attempt to retry a backend request is implementation-specific. Support: Extended", - MarkdownDescription: "Attempts specifies the maxmimum number of times an individual request from the gateway to a backend should be retried. If the maximum number of retries has been attempted without a successful response from the backend, the Gateway MUST return an error. When this field is unspecified, the number of times to attempt to retry a backend request is implementation-specific. Support: Extended", - Required: false, - Optional: true, - Computed: false, - }, - - "backoff": schema.StringAttribute{ - Description: "Backoff specifies the minimum duration a Gateway should wait between retry attempts and is represented in Gateway API Duration formatting. For example, setting the 'rules[].retry.backoff' field to the value '100ms' will cause a backend request to first be retried approximately 100 milliseconds after timing out or receiving a response code configured to be retryable. An implementation MAY use an exponential or alternative backoff strategy for subsequent retry attempts, MAY cap the maximum backoff duration to some amount greater than the specified minimum, and MAY add arbitrary jitter to stagger requests, as long as unsuccessful backend requests are not retried before the configured minimum duration. If a Request timeout ('rules[].timeouts.request') is configured on the route, the entire duration of the initial request and any retry attempts MUST not exceed the Request timeout duration. If any retry attempts are still in progress when the Request timeout duration has been reached, these SHOULD be canceled if possible and the Gateway MUST immediately return a timeout error. If a BackendRequest timeout ('rules[].timeouts.backendRequest') is configured on the route, any retry attempts which reach the configured BackendRequest timeout duration without a response SHOULD be canceled if possible and the Gateway should wait for at least the specified backoff duration before attempting to retry the backend request again. If a BackendRequest timeout is _not_ configured on the route, retry attempts MAY time out after an implementation default duration, or MAY remain pending until a configured Request timeout or implementation default duration for total request time is reached. When this field is unspecified, the time to wait between retry attempts is implementation-specific. Support: Extended", - MarkdownDescription: "Backoff specifies the minimum duration a Gateway should wait between retry attempts and is represented in Gateway API Duration formatting. For example, setting the 'rules[].retry.backoff' field to the value '100ms' will cause a backend request to first be retried approximately 100 milliseconds after timing out or receiving a response code configured to be retryable. An implementation MAY use an exponential or alternative backoff strategy for subsequent retry attempts, MAY cap the maximum backoff duration to some amount greater than the specified minimum, and MAY add arbitrary jitter to stagger requests, as long as unsuccessful backend requests are not retried before the configured minimum duration. If a Request timeout ('rules[].timeouts.request') is configured on the route, the entire duration of the initial request and any retry attempts MUST not exceed the Request timeout duration. If any retry attempts are still in progress when the Request timeout duration has been reached, these SHOULD be canceled if possible and the Gateway MUST immediately return a timeout error. If a BackendRequest timeout ('rules[].timeouts.backendRequest') is configured on the route, any retry attempts which reach the configured BackendRequest timeout duration without a response SHOULD be canceled if possible and the Gateway should wait for at least the specified backoff duration before attempting to retry the backend request again. If a BackendRequest timeout is _not_ configured on the route, retry attempts MAY time out after an implementation default duration, or MAY remain pending until a configured Request timeout or implementation default duration for total request time is reached. When this field is unspecified, the time to wait between retry attempts is implementation-specific. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "codes": schema.ListAttribute{ - Description: "Codes defines the HTTP response status codes for which a backend request should be retried. Support: Extended", - MarkdownDescription: "Codes defines the HTTP response status codes for which a backend request should be retried. Support: Extended", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "session_persistence": schema.SingleNestedAttribute{ - Description: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - MarkdownDescription: "SessionPersistence defines and configures session persistence for the route rule. Support: Extended ", - Attributes: map[string]schema.Attribute{ - "absolute_timeout": schema.StringAttribute{ - Description: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - MarkdownDescription: "AbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "cookie_config": schema.SingleNestedAttribute{ - Description: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - MarkdownDescription: "CookieConfig provides configuration settings that are specific to cookie-based session persistence. Support: Core", - Attributes: map[string]schema.Attribute{ - "lifetime_type": schema.StringAttribute{ - Description: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - MarkdownDescription: "LifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends. When set to 'Permanent', AbsoluteTimeout indicates the cookie's lifetime via the Expires or Max-Age cookie attributes and is required. When set to 'Session', AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional. Support: Core for 'Session' type Support: Extended for 'Permanent' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Permanent", "Session"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "idle_timeout": schema.StringAttribute{ - Description: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - MarkdownDescription: "IdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid. Support: Extended", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.RegexMatches(regexp.MustCompile(`^([0-9]{1,5}(h|m|s|ms)){1,4}$`), ""), - }, - }, - - "session_name": schema.StringAttribute{ - Description: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - MarkdownDescription: "SessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior. Support: Implementation-specific", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtMost(128), - }, - }, - - "type": schema.StringAttribute{ - Description: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - MarkdownDescription: "Type defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence. Support: Core for 'Cookie' type Support: Extended for 'Header' type", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Cookie", "Header"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "timeouts": schema.SingleNestedAttribute{ Description: "Timeouts defines the timeouts that can be configured for an HTTP request. Support: Extended", MarkdownDescription: "Timeouts defines the timeouts that can be configured for an HTTP request. Support: Extended", diff --git a/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_option_v1_manifest.go b/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_option_v1_manifest.go index 1f2e55ecc..80933467e 100644 --- a/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_option_v1_manifest.go +++ b/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_option_v1_manifest.go @@ -49,8 +49,7 @@ type GatewaySoloIoRouteOptionV1ManifestData struct { } `tfsdk:"namespaced_statuses" json:"namespacedStatuses,omitempty"` Options *struct { Ai *struct { - BackupModels *[]string `tfsdk:"backup_models" json:"backupModels,omitempty"` - Defaults *[]struct { + Defaults *[]struct { Field *string `tfsdk:"field" json:"field,omitempty"` Override *bool `tfsdk:"override" json:"override,omitempty"` Value *map[string]string `tfsdk:"value" json:"value,omitempty"` @@ -107,6 +106,7 @@ type GatewaySoloIoRouteOptionV1ManifestData struct { } `tfsdk:"embedding" json:"embedding,omitempty"` PromptTemplate *string `tfsdk:"prompt_template" json:"promptTemplate,omitempty"` } `tfsdk:"rag" json:"rag,omitempty"` + RouteType *string `tfsdk:"route_type" json:"routeType,omitempty"` SemanticCache *struct { Datastore *struct { Redis *struct { @@ -783,7 +783,8 @@ type GatewaySoloIoRouteOptionV1ManifestData struct { PreviousPriorities *struct { UpdateFrequency *int64 `tfsdk:"update_frequency" json:"updateFrequency,omitempty"` } `tfsdk:"previous_priorities" json:"previousPriorities,omitempty"` - RetryBackOff *struct { + RetriableStatusCodes *[]string `tfsdk:"retriable_status_codes" json:"retriableStatusCodes,omitempty"` + RetryBackOff *struct { BaseInterval *string `tfsdk:"base_interval" json:"baseInterval,omitempty"` MaxInterval *string `tfsdk:"max_interval" json:"maxInterval,omitempty"` } `tfsdk:"retry_back_off" json:"retryBackOff,omitempty"` @@ -1676,15 +1677,6 @@ func (r *GatewaySoloIoRouteOptionV1Manifest) Schema(_ context.Context, _ datasou Description: "", MarkdownDescription: "", Attributes: map[string]schema.Attribute{ - "backup_models": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "defaults": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -2032,6 +2024,14 @@ func (r *GatewaySoloIoRouteOptionV1Manifest) Schema(_ context.Context, _ datasou Computed: false, }, + "route_type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "semantic_cache": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -6421,6 +6421,15 @@ func (r *GatewaySoloIoRouteOptionV1Manifest) Schema(_ context.Context, _ datasou Computed: false, }, + "retriable_status_codes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "retry_back_off": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_table_v1_manifest.go b/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_table_v1_manifest.go index b12611058..3b826fbc1 100644 --- a/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_table_v1_manifest.go +++ b/internal/provider/gateway_solo_io_v1/gateway_solo_io_route_table_v1_manifest.go @@ -97,8 +97,7 @@ type GatewaySoloIoRouteTableV1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Options *struct { Ai *struct { - BackupModels *[]string `tfsdk:"backup_models" json:"backupModels,omitempty"` - Defaults *[]struct { + Defaults *[]struct { Field *string `tfsdk:"field" json:"field,omitempty"` Override *bool `tfsdk:"override" json:"override,omitempty"` Value *map[string]string `tfsdk:"value" json:"value,omitempty"` @@ -155,6 +154,7 @@ type GatewaySoloIoRouteTableV1ManifestData struct { } `tfsdk:"embedding" json:"embedding,omitempty"` PromptTemplate *string `tfsdk:"prompt_template" json:"promptTemplate,omitempty"` } `tfsdk:"rag" json:"rag,omitempty"` + RouteType *string `tfsdk:"route_type" json:"routeType,omitempty"` SemanticCache *struct { Datastore *struct { Redis *struct { @@ -831,7 +831,8 @@ type GatewaySoloIoRouteTableV1ManifestData struct { PreviousPriorities *struct { UpdateFrequency *int64 `tfsdk:"update_frequency" json:"updateFrequency,omitempty"` } `tfsdk:"previous_priorities" json:"previousPriorities,omitempty"` - RetryBackOff *struct { + RetriableStatusCodes *[]string `tfsdk:"retriable_status_codes" json:"retriableStatusCodes,omitempty"` + RetryBackOff *struct { BaseInterval *string `tfsdk:"base_interval" json:"baseInterval,omitempty"` MaxInterval *string `tfsdk:"max_interval" json:"maxInterval,omitempty"` } `tfsdk:"retry_back_off" json:"retryBackOff,omitempty"` @@ -3082,15 +3083,6 @@ func (r *GatewaySoloIoRouteTableV1Manifest) Schema(_ context.Context, _ datasour Description: "", MarkdownDescription: "", Attributes: map[string]schema.Attribute{ - "backup_models": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "defaults": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -3438,6 +3430,14 @@ func (r *GatewaySoloIoRouteTableV1Manifest) Schema(_ context.Context, _ datasour Computed: false, }, + "route_type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "semantic_cache": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -7827,6 +7827,15 @@ func (r *GatewaySoloIoRouteTableV1Manifest) Schema(_ context.Context, _ datasour Computed: false, }, + "retriable_status_codes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "retry_back_off": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_host_option_v1_manifest.go b/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_host_option_v1_manifest.go index 346385bb6..63e327b5e 100644 --- a/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_host_option_v1_manifest.go +++ b/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_host_option_v1_manifest.go @@ -661,7 +661,8 @@ type GatewaySoloIoVirtualHostOptionV1ManifestData struct { PreviousPriorities *struct { UpdateFrequency *int64 `tfsdk:"update_frequency" json:"updateFrequency,omitempty"` } `tfsdk:"previous_priorities" json:"previousPriorities,omitempty"` - RetryBackOff *struct { + RetriableStatusCodes *[]string `tfsdk:"retriable_status_codes" json:"retriableStatusCodes,omitempty"` + RetryBackOff *struct { BaseInterval *string `tfsdk:"base_interval" json:"baseInterval,omitempty"` MaxInterval *string `tfsdk:"max_interval" json:"maxInterval,omitempty"` } `tfsdk:"retry_back_off" json:"retryBackOff,omitempty"` @@ -5523,6 +5524,15 @@ func (r *GatewaySoloIoVirtualHostOptionV1Manifest) Schema(_ context.Context, _ d Computed: false, }, + "retriable_status_codes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "retry_back_off": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_service_v1_manifest.go b/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_service_v1_manifest.go index f2dd9eb46..7d49e08dd 100644 --- a/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_service_v1_manifest.go +++ b/internal/provider/gateway_solo_io_v1/gateway_solo_io_virtual_service_v1_manifest.go @@ -701,7 +701,8 @@ type GatewaySoloIoVirtualServiceV1ManifestData struct { PreviousPriorities *struct { UpdateFrequency *int64 `tfsdk:"update_frequency" json:"updateFrequency,omitempty"` } `tfsdk:"previous_priorities" json:"previousPriorities,omitempty"` - RetryBackOff *struct { + RetriableStatusCodes *[]string `tfsdk:"retriable_status_codes" json:"retriableStatusCodes,omitempty"` + RetryBackOff *struct { BaseInterval *string `tfsdk:"base_interval" json:"baseInterval,omitempty"` MaxInterval *string `tfsdk:"max_interval" json:"maxInterval,omitempty"` } `tfsdk:"retry_back_off" json:"retryBackOff,omitempty"` @@ -1520,8 +1521,7 @@ type GatewaySoloIoVirtualServiceV1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Options *struct { Ai *struct { - BackupModels *[]string `tfsdk:"backup_models" json:"backupModels,omitempty"` - Defaults *[]struct { + Defaults *[]struct { Field *string `tfsdk:"field" json:"field,omitempty"` Override *bool `tfsdk:"override" json:"override,omitempty"` Value *map[string]string `tfsdk:"value" json:"value,omitempty"` @@ -1578,6 +1578,7 @@ type GatewaySoloIoVirtualServiceV1ManifestData struct { } `tfsdk:"embedding" json:"embedding,omitempty"` PromptTemplate *string `tfsdk:"prompt_template" json:"promptTemplate,omitempty"` } `tfsdk:"rag" json:"rag,omitempty"` + RouteType *string `tfsdk:"route_type" json:"routeType,omitempty"` SemanticCache *struct { Datastore *struct { Redis *struct { @@ -2254,7 +2255,8 @@ type GatewaySoloIoVirtualServiceV1ManifestData struct { PreviousPriorities *struct { UpdateFrequency *int64 `tfsdk:"update_frequency" json:"updateFrequency,omitempty"` } `tfsdk:"previous_priorities" json:"previousPriorities,omitempty"` - RetryBackOff *struct { + RetriableStatusCodes *[]string `tfsdk:"retriable_status_codes" json:"retriableStatusCodes,omitempty"` + RetryBackOff *struct { BaseInterval *string `tfsdk:"base_interval" json:"baseInterval,omitempty"` MaxInterval *string `tfsdk:"max_interval" json:"maxInterval,omitempty"` } `tfsdk:"retry_back_off" json:"retryBackOff,omitempty"` @@ -8429,6 +8431,15 @@ func (r *GatewaySoloIoVirtualServiceV1Manifest) Schema(_ context.Context, _ data Computed: false, }, + "retriable_status_codes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "retry_back_off": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -13780,15 +13791,6 @@ func (r *GatewaySoloIoVirtualServiceV1Manifest) Schema(_ context.Context, _ data Description: "", MarkdownDescription: "", Attributes: map[string]schema.Attribute{ - "backup_models": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "defaults": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -14136,6 +14138,14 @@ func (r *GatewaySoloIoVirtualServiceV1Manifest) Schema(_ context.Context, _ data Computed: false, }, + "route_type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "semantic_cache": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -18525,6 +18535,15 @@ func (r *GatewaySoloIoVirtualServiceV1Manifest) Schema(_ context.Context, _ data Computed: false, }, + "retriable_status_codes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "retry_back_off": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/gloo_solo_io_v1/gloo_solo_io_upstream_v1_manifest.go b/internal/provider/gloo_solo_io_v1/gloo_solo_io_upstream_v1_manifest.go index 56c0efbc2..1a576989a 100644 --- a/internal/provider/gloo_solo_io_v1/gloo_solo_io_upstream_v1_manifest.go +++ b/internal/provider/gloo_solo_io_v1/gloo_solo_io_upstream_v1_manifest.go @@ -57,17 +57,20 @@ type GlooSoloIoUpstreamV1ManifestData struct { Host *string `tfsdk:"host" json:"host,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"custom_host" json:"customHost,omitempty"` + Model *string `tfsdk:"model" json:"model,omitempty"` Version *string `tfsdk:"version" json:"version,omitempty"` } `tfsdk:"anthropic" json:"anthropic,omitempty"` AzureOpenai *struct { - AuthToken *struct { + ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` + AuthToken *struct { Inline *string `tfsdk:"inline" json:"inline,omitempty"` SecretRef *struct { Name *string `tfsdk:"name" json:"name,omitempty"` Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"secret_ref" json:"secretRef,omitempty"` } `tfsdk:"auth_token" json:"authToken,omitempty"` - Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + DeploymentName *string `tfsdk:"deployment_name" json:"deploymentName,omitempty"` + Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` } `tfsdk:"azure_openai" json:"azureOpenai,omitempty"` Mistral *struct { AuthToken *struct { @@ -81,7 +84,69 @@ type GlooSoloIoUpstreamV1ManifestData struct { Host *string `tfsdk:"host" json:"host,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"custom_host" json:"customHost,omitempty"` + Model *string `tfsdk:"model" json:"model,omitempty"` } `tfsdk:"mistral" json:"mistral,omitempty"` + Multi *struct { + Priorities *[]struct { + Pool *[]struct { + Anthropic *struct { + AuthToken *struct { + Inline *string `tfsdk:"inline" json:"inline,omitempty"` + SecretRef *struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + } `tfsdk:"secret_ref" json:"secretRef,omitempty"` + } `tfsdk:"auth_token" json:"authToken,omitempty"` + CustomHost *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + } `tfsdk:"custom_host" json:"customHost,omitempty"` + Model *string `tfsdk:"model" json:"model,omitempty"` + Version *string `tfsdk:"version" json:"version,omitempty"` + } `tfsdk:"anthropic" json:"anthropic,omitempty"` + AzureOpenai *struct { + ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` + AuthToken *struct { + Inline *string `tfsdk:"inline" json:"inline,omitempty"` + SecretRef *struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + } `tfsdk:"secret_ref" json:"secretRef,omitempty"` + } `tfsdk:"auth_token" json:"authToken,omitempty"` + DeploymentName *string `tfsdk:"deployment_name" json:"deploymentName,omitempty"` + Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` + } `tfsdk:"azure_openai" json:"azureOpenai,omitempty"` + Mistral *struct { + AuthToken *struct { + Inline *string `tfsdk:"inline" json:"inline,omitempty"` + SecretRef *struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + } `tfsdk:"secret_ref" json:"secretRef,omitempty"` + } `tfsdk:"auth_token" json:"authToken,omitempty"` + CustomHost *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + } `tfsdk:"custom_host" json:"customHost,omitempty"` + Model *string `tfsdk:"model" json:"model,omitempty"` + } `tfsdk:"mistral" json:"mistral,omitempty"` + Openai *struct { + AuthToken *struct { + Inline *string `tfsdk:"inline" json:"inline,omitempty"` + SecretRef *struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + } `tfsdk:"secret_ref" json:"secretRef,omitempty"` + } `tfsdk:"auth_token" json:"authToken,omitempty"` + CustomHost *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + } `tfsdk:"custom_host" json:"customHost,omitempty"` + Model *string `tfsdk:"model" json:"model,omitempty"` + } `tfsdk:"openai" json:"openai,omitempty"` + } `tfsdk:"pool" json:"pool,omitempty"` + } `tfsdk:"priorities" json:"priorities,omitempty"` + } `tfsdk:"multi" json:"multi,omitempty"` Openai *struct { AuthToken *struct { Inline *string `tfsdk:"inline" json:"inline,omitempty"` @@ -94,6 +159,7 @@ type GlooSoloIoUpstreamV1ManifestData struct { Host *string `tfsdk:"host" json:"host,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` } `tfsdk:"custom_host" json:"customHost,omitempty"` + Model *string `tfsdk:"model" json:"model,omitempty"` } `tfsdk:"openai" json:"openai,omitempty"` } `tfsdk:"ai" json:"ai,omitempty"` Aws *struct { @@ -1030,6 +1096,14 @@ func (r *GlooSoloIoUpstreamV1Manifest) Schema(_ context.Context, _ datasource.Sc Computed: false, }, + "model": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "version": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -1047,6 +1121,14 @@ func (r *GlooSoloIoUpstreamV1Manifest) Schema(_ context.Context, _ datasource.Sc Description: "", MarkdownDescription: "", Attributes: map[string]schema.Attribute{ + "api_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "auth_token": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -1089,6 +1171,14 @@ func (r *GlooSoloIoUpstreamV1Manifest) Schema(_ context.Context, _ datasource.Sc Computed: false, }, + "deployment_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "endpoint": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -1176,6 +1266,392 @@ func (r *GlooSoloIoUpstreamV1Manifest) Schema(_ context.Context, _ datasource.Sc Optional: true, Computed: false, }, + + "model": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "multi": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "priorities": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "pool": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "anthropic": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "auth_token": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "inline": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "secret_ref": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "custom_host": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Int64{ + int64validator.AtLeast(0), + int64validator.AtMost(4.294967295e+09), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "model": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "azure_openai": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "api_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "auth_token": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "inline": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "secret_ref": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "deployment_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "mistral": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "auth_token": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "inline": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "secret_ref": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "custom_host": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Int64{ + int64validator.AtLeast(0), + int64validator.AtMost(4.294967295e+09), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "model": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "openai": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "auth_token": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "inline": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "secret_ref": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "custom_host": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Int64{ + int64validator.AtLeast(0), + int64validator.AtMost(4.294967295e+09), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "model": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -1256,6 +1732,14 @@ func (r *GlooSoloIoUpstreamV1Manifest) Schema(_ context.Context, _ datasource.Sc Optional: true, Computed: false, }, + + "model": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, diff --git a/internal/provider/helm_toolkit_fluxcd_io_v2/helm_toolkit_fluxcd_io_helm_release_v2_manifest.go b/internal/provider/helm_toolkit_fluxcd_io_v2/helm_toolkit_fluxcd_io_helm_release_v2_manifest.go index b11d69d26..f2b7f102f 100644 --- a/internal/provider/helm_toolkit_fluxcd_io_v2/helm_toolkit_fluxcd_io_helm_release_v2_manifest.go +++ b/internal/provider/helm_toolkit_fluxcd_io_v2/helm_toolkit_fluxcd_io_helm_release_v2_manifest.go @@ -100,6 +100,7 @@ type HelmToolkitFluxcdIoHelmReleaseV2ManifestData struct { CreateNamespace *bool `tfsdk:"create_namespace" json:"createNamespace,omitempty"` DisableHooks *bool `tfsdk:"disable_hooks" json:"disableHooks,omitempty"` DisableOpenAPIValidation *bool `tfsdk:"disable_open_api_validation" json:"disableOpenAPIValidation,omitempty"` + DisableSchemaValidation *bool `tfsdk:"disable_schema_validation" json:"disableSchemaValidation,omitempty"` DisableWait *bool `tfsdk:"disable_wait" json:"disableWait,omitempty"` DisableWaitForJobs *bool `tfsdk:"disable_wait_for_jobs" json:"disableWaitForJobs,omitempty"` Remediation *struct { @@ -178,6 +179,7 @@ type HelmToolkitFluxcdIoHelmReleaseV2ManifestData struct { Crds *string `tfsdk:"crds" json:"crds,omitempty"` DisableHooks *bool `tfsdk:"disable_hooks" json:"disableHooks,omitempty"` DisableOpenAPIValidation *bool `tfsdk:"disable_open_api_validation" json:"disableOpenAPIValidation,omitempty"` + DisableSchemaValidation *bool `tfsdk:"disable_schema_validation" json:"disableSchemaValidation,omitempty"` DisableWait *bool `tfsdk:"disable_wait" json:"disableWait,omitempty"` DisableWaitForJobs *bool `tfsdk:"disable_wait_for_jobs" json:"disableWaitForJobs,omitempty"` Force *bool `tfsdk:"force" json:"force,omitempty"` @@ -694,6 +696,14 @@ func (r *HelmToolkitFluxcdIoHelmReleaseV2Manifest) Schema(_ context.Context, _ d Computed: false, }, + "disable_schema_validation": schema.BoolAttribute{ + Description: "DisableSchemaValidation prevents the Helm install action from validating the values against the JSON Schema.", + MarkdownDescription: "DisableSchemaValidation prevents the Helm install action from validating the values against the JSON Schema.", + Required: false, + Optional: true, + Computed: false, + }, + "disable_wait": schema.BoolAttribute{ Description: "DisableWait disables the waiting for resources to be ready after a Helm install has been performed.", MarkdownDescription: "DisableWait disables the waiting for resources to be ready after a Helm install has been performed.", @@ -1279,6 +1289,14 @@ func (r *HelmToolkitFluxcdIoHelmReleaseV2Manifest) Schema(_ context.Context, _ d Computed: false, }, + "disable_schema_validation": schema.BoolAttribute{ + Description: "DisableSchemaValidation prevents the Helm upgrade action from validating the values against the JSON Schema.", + MarkdownDescription: "DisableSchemaValidation prevents the Helm upgrade action from validating the values against the JSON Schema.", + Required: false, + Optional: true, + Computed: false, + }, + "disable_wait": schema.BoolAttribute{ Description: "DisableWait disables the waiting for resources to be ready after a Helm upgrade has been performed.", MarkdownDescription: "DisableWait disables the waiting for resources to be ready after a Helm upgrade has been performed.", diff --git a/internal/provider/hive_openshift_io_v1/hive_openshift_io_hive_config_v1_manifest.go b/internal/provider/hive_openshift_io_v1/hive_openshift_io_hive_config_v1_manifest.go index e8a29f058..058ecd13d 100644 --- a/internal/provider/hive_openshift_io_v1/hive_openshift_io_hive_config_v1_manifest.go +++ b/internal/provider/hive_openshift_io_v1/hive_openshift_io_hive_config_v1_manifest.go @@ -78,7 +78,8 @@ type HiveOpenshiftIoHiveConfigV1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"velero" json:"velero,omitempty"` } `tfsdk:"backup" json:"backup,omitempty"` - ControllersConfig *struct { + ClusterVersionPollInterval *string `tfsdk:"cluster_version_poll_interval" json:"clusterVersionPollInterval,omitempty"` + ControllersConfig *struct { Controllers *[]struct { Config *struct { ClientBurst *int64 `tfsdk:"client_burst" json:"clientBurst,omitempty"` @@ -495,6 +496,14 @@ func (r *HiveOpenshiftIoHiveConfigV1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, + "cluster_version_poll_interval": schema.StringAttribute{ + Description: "ClusterVersionPollInterval is a string duration indicating how much time must pass before checking whether we need to update the hive.openshift.io/version* labels on ClusterDeployment. If zero or unset, we'll only reconcile when the ClusterDeployment changes.", + MarkdownDescription: "ClusterVersionPollInterval is a string duration indicating how much time must pass before checking whether we need to update the hive.openshift.io/version* labels on ClusterDeployment. If zero or unset, we'll only reconcile when the ClusterDeployment changes.", + Required: false, + Optional: true, + Computed: false, + }, + "controllers_config": schema.SingleNestedAttribute{ Description: "ControllersConfig is used to configure different hive controllers", MarkdownDescription: "ControllersConfig is used to configure different hive controllers", diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_backup_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_backup_v1alpha1_manifest.go index eb4946ae1..beb0c6394 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_backup_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_backup_v1alpha1_manifest.go @@ -46,87 +46,7 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { Spec *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -137,18 +57,7 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -161,18 +70,7 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` @@ -190,14 +88,9 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { } `tfsdk:"inherit_metadata" json:"inheritMetadata,omitempty"` LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` MaxRetention *string `tfsdk:"max_retention" json:"maxRetention,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` @@ -240,10 +133,6 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -254,53 +143,21 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { } `tfsdk:"schedule" json:"schedule,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` Storage *struct { PersistentVolumeClaim *struct { AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { + Resources *struct { Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -312,88 +169,34 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` S3 *struct { AccessKeyIdSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"access_key_id_secret_key_ref" json:"accessKeyIdSecretKeyRef,omitempty"` Bucket *string `tfsdk:"bucket" json:"bucket,omitempty"` Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` Region *string `tfsdk:"region" json:"region,omitempty"` SecretAccessKeySecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_access_key_secret_key_ref" json:"secretAccessKeySecretKeyRef,omitempty"` SessionTokenSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"session_token_secret_key_ref" json:"sessionTokenSecretKeyRef,omitempty"` Tls *struct { CaSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"ca_secret_key_ref" json:"caSecretKeyRef,omitempty"` Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` } `tfsdk:"tls" json:"tls,omitempty"` } `tfsdk:"s3" json:"s3,omitempty"` Volume *struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` Csi *struct { Driver *string `tfsdk:"driver" json:"driver,omitempty"` FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` @@ -403,120 +206,10 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` EmptyDir *struct { Medium *string `tfsdk:"medium" json:"medium,omitempty"` SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` Nfs *struct { Path *string `tfsdk:"path" json:"path,omitempty"` ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` @@ -526,131 +219,6 @@ type K8SMariadbComBackupV1Alpha1ManifestData struct { ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` } `tfsdk:"volume" json:"volume,omitempty"` } `tfsdk:"storage" json:"storage,omitempty"` SuccessfulJobsHistoryLimit *int64 `tfsdk:"successful_jobs_history_limit" json:"successfulJobsHistoryLimit,omitempty"` @@ -754,90 +322,80 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", Attributes: map[string]schema.Attribute{ "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", + Description: "", + MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, }, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, Optional: true, Computed: false, }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, }, Required: true, Optional: false, @@ -845,8 +403,8 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso }, "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -858,39 +416,39 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ + "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", Required: true, Optional: false, Computed: false, }, "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", Required: true, Optional: false, Computed: false, }, "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", ElementType: types.StringType, Required: false, Optional: true, @@ -903,46 +461,27 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, + Required: false, + Optional: true, + Computed: false, + }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, - Required: true, - Optional: false, - Computed: false, }, }, Required: false, @@ -954,3460 +493,652 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "backoff_limit": schema.Int64Attribute{ - Description: "BackoffLimit defines the maximum number of attempts to successfully take a Backup.", - MarkdownDescription: "BackoffLimit defines the maximum number of attempts to successfully take a Backup.", - Required: false, - Optional: true, - Computed: false, - }, - - "databases": schema.ListAttribute{ - Description: "Databases defines the logical databases to be backed up. If not provided, all databases are backed up.", - MarkdownDescription: "Databases defines the logical databases to be backed up. If not provided, all databases are backed up.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "failed_jobs_history_limit": schema.Int64Attribute{ - Description: "FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.", - MarkdownDescription: "FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, - }, - - "ignore_global_priv": schema.BoolAttribute{ - Description: "IgnoreGlobalPriv indicates to ignore the mysql.global_priv in backups. If not provided, it will default to true when the referred MariaDB instance has Galera enabled and otherwise to false. See: https://github.com/mariadb-operator/mariadb-operator/issues/556", - MarkdownDescription: "IgnoreGlobalPriv indicates to ignore the mysql.global_priv in backups. If not provided, it will default to true when the referred MariaDB instance has Galera enabled and otherwise to false. See: https://github.com/mariadb-operator/mariadb-operator/issues/556", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_secrets": schema.ListNestedAttribute{ - Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "inherit_metadata": schema.SingleNestedAttribute{ - Description: "InheritMetadata defines the metadata to be inherited by children resources.", - MarkdownDescription: "InheritMetadata defines the metadata to be inherited by children resources.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "log_level": schema.StringAttribute{ - Description: "LogLevel to be used n the Backup Job. It defaults to 'info'.", - MarkdownDescription: "LogLevel to be used n the Backup Job. It defaults to 'info'.", - Required: false, - Optional: true, - Computed: false, - }, - - "maria_db_ref": schema.SingleNestedAttribute{ - Description: "MariaDBRef is a reference to a MariaDB object.", - MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - Required: false, - Optional: true, - Computed: false, - }, - - "wait_for_it": schema.BoolAttribute{ - Description: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", - MarkdownDescription: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "max_retention": schema.StringAttribute{ - Description: "MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job. It defaults to 30 days.", - MarkdownDescription: "MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job. It defaults to 30 days.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_selector": schema.MapAttribute{ - Description: "NodeSelector to be used in the Pod.", - MarkdownDescription: "NodeSelector to be used in the Pod.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_metadata": schema.SingleNestedAttribute{ - Description: "PodMetadata defines extra metadata for the Pod.", - MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds pod-level security attributes and common container settings.", - MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", - Attributes: map[string]schema.Attribute{ - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group": schema.Int64Attribute{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups_policy": schema.StringAttribute{ - Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "sysctls": schema.ListNestedAttribute{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of a property to set", - MarkdownDescription: "Name of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value of a property to set", - MarkdownDescription: "Value of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName to be used in the Pod.", - MarkdownDescription: "PriorityClassName to be used in the Pod.", - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "restart_policy": schema.StringAttribute{ - Description: "RestartPolicy to be added to the Backup Pod.", - MarkdownDescription: "RestartPolicy to be added to the Backup Pod.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "OnFailure", "Never"), - }, - }, - - "schedule": schema.SingleNestedAttribute{ - Description: "Schedule defines when the Backup will be taken.", - MarkdownDescription: "Schedule defines when the Backup will be taken.", - Attributes: map[string]schema.Attribute{ - "cron": schema.StringAttribute{ - Description: "Cron is a cron expression that defines the schedule.", - MarkdownDescription: "Cron is a cron expression that defines the schedule.", - Required: true, - Optional: false, - Computed: false, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend defines whether the schedule is active or not.", - MarkdownDescription: "Suspend defines whether the schedule is active or not.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage": schema.SingleNestedAttribute{ - Description: "Storage to be used in the Backup.", - MarkdownDescription: "Storage to be used in the Backup.", - Attributes: map[string]schema.Attribute{ - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "PersistentVolumeClaim is a Kubernetes PVC specification.", - MarkdownDescription: "PersistentVolumeClaim is a Kubernetes PVC specification.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "s3": schema.SingleNestedAttribute{ - Description: "S3 defines the configuration to store backups in a S3 compatible storage.", - MarkdownDescription: "S3 defines the configuration to store backups in a S3 compatible storage.", - Attributes: map[string]schema.Attribute{ - "access_key_id_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", - MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "bucket": schema.StringAttribute{ - Description: "Bucket is the name Name of the bucket to store backups.", - MarkdownDescription: "Bucket is the name Name of the bucket to store backups.", - Required: true, - Optional: false, - Computed: false, - }, - - "endpoint": schema.StringAttribute{ - Description: "Endpoint is the S3 API endpoint without scheme.", - MarkdownDescription: "Endpoint is the S3 API endpoint without scheme.", - Required: true, - Optional: false, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", - MarkdownDescription: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "region": schema.StringAttribute{ - Description: "Region is the S3 region name to use.", - MarkdownDescription: "Region is the S3 region name to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_access_key_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", - MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "session_token_secret_key_ref": schema.SingleNestedAttribute{ - Description: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", - MarkdownDescription: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "tls": schema.SingleNestedAttribute{ - Description: "TLS provides the configuration required to establish TLS connections with S3.", - MarkdownDescription: "TLS provides the configuration required to establish TLS connections with S3.", - Attributes: map[string]schema.Attribute{ - "ca_secret_key_ref": schema.SingleNestedAttribute{ - Description: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", - MarkdownDescription: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable TLS.", - MarkdownDescription: "Enabled is a flag to enable TLS.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume": schema.SingleNestedAttribute{ - Description: "Volume is a Kubernetes volume specification.", - MarkdownDescription: "Volume is a Kubernetes volume specification.", - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, - - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, - - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "backoff_limit": schema.Int64Attribute{ + Description: "BackoffLimit defines the maximum number of attempts to successfully take a Backup.", + MarkdownDescription: "BackoffLimit defines the maximum number of attempts to successfully take a Backup.", + Required: false, + Optional: true, + Computed: false, + }, - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "databases": schema.ListAttribute{ + Description: "Databases defines the logical databases to be backed up. If not provided, all databases are backed up.", + MarkdownDescription: "Databases defines the logical databases to be backed up. If not provided, all databases are backed up.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "failed_jobs_history_limit": schema.Int64Attribute{ + Description: "FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.", + MarkdownDescription: "FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Int64{ + int64validator.AtLeast(0), + }, + }, - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "ignore_global_priv": schema.BoolAttribute{ + Description: "IgnoreGlobalPriv indicates to ignore the mysql.global_priv in backups. If not provided, it will default to true when the referred MariaDB instance has Galera enabled and otherwise to false. See: https://github.com/mariadb-operator/mariadb-operator/issues/556", + MarkdownDescription: "IgnoreGlobalPriv indicates to ignore the mysql.global_priv in backups. If not provided, it will default to true when the referred MariaDB instance has Galera enabled and otherwise to false. See: https://github.com/mariadb-operator/mariadb-operator/issues/556", + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "inherit_metadata": schema.SingleNestedAttribute{ + Description: "InheritMetadata defines the metadata to be inherited by children resources.", + MarkdownDescription: "InheritMetadata defines the metadata to be inherited by children resources.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, + "log_level": schema.StringAttribute{ + Description: "LogLevel to be used n the Backup Job. It defaults to 'info'.", + MarkdownDescription: "LogLevel to be used n the Backup Job. It defaults to 'info'.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, + "maria_db_ref": schema.SingleNestedAttribute{ + Description: "MariaDBRef is a reference to a MariaDB object.", + MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "wait_for_it": schema.BoolAttribute{ + Description: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", + MarkdownDescription: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "max_retention": schema.StringAttribute{ + Description: "MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job. It defaults to 30 days.", + MarkdownDescription: "MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job. It defaults to 30 days.", + Required: false, + Optional: true, + Computed: false, + }, - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, + "node_selector": schema.MapAttribute{ + Description: "NodeSelector to be used in the Pod.", + MarkdownDescription: "NodeSelector to be used in the Pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata defines extra metadata for the Pod.", + MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "pod_security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", + Attributes: map[string]schema.Attribute{ + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + Required: false, + Optional: true, + Computed: false, }, - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, - - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "fs_group": schema.Int64Attribute{ + Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "fs_group_change_policy": schema.StringAttribute{ + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "se_linux_options": schema.SingleNestedAttribute{ + Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "level": schema.StringAttribute{ + Description: "Level is SELinux level label that applies to the container.", + MarkdownDescription: "Level is SELinux level label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, + "role": schema.StringAttribute{ + Description: "Role is a SELinux role label that applies to the container.", + MarkdownDescription: "Role is a SELinux role label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "type": schema.StringAttribute{ + Description: "Type is a SELinux type label that applies to the container.", + MarkdownDescription: "Type is a SELinux type label that applies to the container.", + Required: false, + Optional: true, + Computed: false, }, - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, + "user": schema.StringAttribute{ + Description: "User is a SELinux user label that applies to the container.", + MarkdownDescription: "User is a SELinux user label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + Required: false, + Optional: true, + Computed: false, + }, - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "type": schema.StringAttribute{ + Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + Required: true, + Optional: false, + Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, + "supplemental_groups": schema.ListAttribute{ + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, + "sysctls": schema.ListNestedAttribute{ + Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of a property to set", + MarkdownDescription: "Name of a property to set", + Required: true, + Optional: false, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, + "value": schema.StringAttribute{ + Description: "Value of a property to set", + MarkdownDescription: "Value of a property to set", + Required: true, + Optional: false, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, - - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "windows_options": schema.SingleNestedAttribute{ + Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + Attributes: map[string]schema.Attribute{ + "gmsa_credential_spec": schema.StringAttribute{ + Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + Required: false, + Optional: true, + Computed: false, }, - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + Required: false, + Optional: true, + Computed: false, + }, - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, + "host_process": schema.BoolAttribute{ + Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user_name": schema.StringAttribute{ + Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName to be used in the Pod.", + MarkdownDescription: "PriorityClassName to be used in the Pod.", + Required: false, + Optional: true, + Computed: false, + }, - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, + "restart_policy": schema.StringAttribute{ + Description: "RestartPolicy to be added to the Backup Pod.", + MarkdownDescription: "RestartPolicy to be added to the Backup Pod.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "OnFailure", "Never"), + }, + }, - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "schedule": schema.SingleNestedAttribute{ + Description: "Schedule defines when the Backup will be taken.", + MarkdownDescription: "Schedule defines when the Backup will be taken.", + Attributes: map[string]schema.Attribute{ + "cron": schema.StringAttribute{ + Description: "Cron is a cron expression that defines the schedule.", + MarkdownDescription: "Cron is a cron expression that defines the schedule.", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "suspend": schema.BoolAttribute{ + Description: "Suspend defines whether the schedule is active or not.", + MarkdownDescription: "Suspend defines whether the schedule is active or not.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds security configuration that will be applied to a container.", + MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", + Attributes: map[string]schema.Attribute{ + "allow_privilege_escalation": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "capabilities": schema.SingleNestedAttribute{ + Description: "Adds and removes POSIX capabilities from running containers.", + MarkdownDescription: "Adds and removes POSIX capabilities from running containers.", + Attributes: map[string]schema.Attribute{ + "add": schema.ListAttribute{ + Description: "Added capabilities", + MarkdownDescription: "Added capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, + "drop": schema.ListAttribute{ + Description: "Removed capabilities", + MarkdownDescription: "Removed capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, + "privileged": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "read_only_root_filesystem": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "service_account_name": schema.StringAttribute{ + Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + Required: false, + Optional: true, + Computed: false, + }, + + "storage": schema.SingleNestedAttribute{ + Description: "Storage to be used in the Backup.", + MarkdownDescription: "Storage to be used in the Backup.", + Attributes: map[string]schema.Attribute{ + "persistent_volume_claim": schema.SingleNestedAttribute{ + Description: "PersistentVolumeClaim is a Kubernetes PVC specification.", + MarkdownDescription: "PersistentVolumeClaim is a Kubernetes PVC specification.", + Attributes: map[string]schema.Attribute{ + "access_modes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", + "resources": schema.SingleNestedAttribute{ + Description: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + MarkdownDescription: "VolumeResourceRequirements describes the storage resource requirements for a volume.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", - Required: true, - Optional: false, - Computed: false, - }, }, Required: false, Optional: true, Computed: false, }, - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", + "selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, - - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, }, - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, }, - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, - - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, }, @@ -4415,129 +1146,164 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "storage_class_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", + "s3": schema.SingleNestedAttribute{ + Description: "S3 defines the configuration to store backups in a S3 compatible storage.", + MarkdownDescription: "S3 defines the configuration to store backups in a S3 compatible storage.", + Attributes: map[string]schema.Attribute{ + "access_key_id_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", + MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, - - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Required: false, - Optional: true, - Computed: false, - }, + "bucket": schema.StringAttribute{ + Description: "Bucket is the name Name of the bucket to store backups.", + MarkdownDescription: "Bucket is the name Name of the bucket to store backups.", + Required: true, + Optional: false, + Computed: false, + }, + + "endpoint": schema.StringAttribute{ + Description: "Endpoint is the S3 API endpoint without scheme.", + MarkdownDescription: "Endpoint is the S3 API endpoint without scheme.", + Required: true, + Optional: false, + Computed: false, + }, + + "prefix": schema.StringAttribute{ + Description: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", + MarkdownDescription: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", + Required: false, + Optional: true, + Computed: false, + }, + + "region": schema.StringAttribute{ + Description: "Region is the S3 region name to use.", + MarkdownDescription: "Region is the S3 region name to use.", + Required: false, + Optional: true, + Computed: false, + }, - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "secret_access_key_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", + MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, + "session_token_secret_key_ref": schema.SingleNestedAttribute{ + Description: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", + MarkdownDescription: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "tls": schema.SingleNestedAttribute{ + Description: "TLS provides the configuration required to establish TLS connections with S3.", + MarkdownDescription: "TLS provides the configuration required to establish TLS connections with S3.", + Attributes: map[string]schema.Attribute{ + "ca_secret_key_ref": schema.SingleNestedAttribute{ + Description: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", + MarkdownDescription: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -4548,9 +1314,9 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable TLS.", + MarkdownDescription: "Enabled is a flag to enable TLS.", Required: false, Optional: true, Computed: false, @@ -4560,46 +1326,39 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "volume": schema.SingleNestedAttribute{ + Description: "Volume is a Kubernetes volume specification.", + MarkdownDescription: "Volume is a Kubernetes volume specification.", + Attributes: map[string]schema.Attribute{ + "csi": schema.SingleNestedAttribute{ + Description: "Represents a source location of a volume to mount, managed by an external CSI driver", + MarkdownDescription: "Represents a source location of a volume to mount, managed by an external CSI driver", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - Required: false, - Optional: true, - Computed: false, - }, - - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", + "driver": schema.StringAttribute{ + Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", Required: true, Optional: false, Computed: false, }, - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "fs_type": schema.StringAttribute{ + Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", + MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", Required: false, Optional: true, Computed: false, }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "node_publish_secret_ref": schema.SingleNestedAttribute{ + Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", + MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", @@ -4609,46 +1368,23 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, }, - Required: true, - Optional: false, + Required: false, + Optional: true, Computed: false, }, - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", + "read_only": schema.BoolAttribute{ + Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", + MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", Required: false, Optional: true, Computed: false, }, - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", + "volume_attributes": schema.MapAttribute{ + Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, @@ -4659,64 +1395,21 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "empty_dir": schema.SingleNestedAttribute{ + Description: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + MarkdownDescription: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", + "medium": schema.StringAttribute{ + Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", Required: false, Optional: true, Computed: false, }, - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "size_limit": schema.StringAttribute{ + Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", Required: false, Optional: true, Computed: false, @@ -4727,56 +1420,31 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", + "nfs": schema.SingleNestedAttribute{ + Description: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + MarkdownDescription: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, + "path": schema.StringAttribute{ + Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, Computed: false, }, "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", Required: false, Optional: true, Computed: false, }, - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Required: false, - Optional: true, + "server": schema.StringAttribute{ + Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, Computed: false, }, }, @@ -4785,41 +1453,25 @@ func (r *K8SMariadbComBackupV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "persistent_volume_claim": schema.SingleNestedAttribute{ + Description: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + MarkdownDescription: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Required: false, - Optional: true, + "claim_name": schema.StringAttribute{ + Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + Required: true, + Optional: false, Computed: false, }, - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", + "read_only": schema.BoolAttribute{ + Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", Required: false, Optional: true, Computed: false, }, - - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", - Required: true, - Optional: false, - Computed: false, - }, }, Required: false, Optional: true, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_connection_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_connection_v1alpha1_manifest.go index eb3301fc3..bed77c2fa 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_connection_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_connection_v1alpha1_manifest.go @@ -50,29 +50,18 @@ type K8SMariadbComConnectionV1Alpha1ManifestData struct { } `tfsdk:"health_check" json:"healthCheck,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` MaxScaleRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"max_scale_ref" json:"maxScaleRef,omitempty"` Params *map[string]string `tfsdk:"params" json:"params,omitempty"` PasswordSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"password_secret_key_ref" json:"passwordSecretKeyRef,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` @@ -216,57 +205,17 @@ func (r *K8SMariadbComConnectionV1Alpha1Manifest) Schema(_ context.Context, _ da Description: "MariaDBRef is a reference to the MariaDB to connect to. Either MariaDBRef or MaxScaleRef must be provided.", MarkdownDescription: "MariaDBRef is a reference to the MariaDB to connect to. Either MariaDBRef or MaxScaleRef must be provided.", Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -289,57 +238,17 @@ func (r *K8SMariadbComConnectionV1Alpha1Manifest) Schema(_ context.Context, _ da Description: "MaxScaleRef is a reference to the MaxScale to connect to. Either MariaDBRef or MaxScaleRef must be provided.", MarkdownDescription: "MaxScaleRef is a reference to the MaxScale to connect to. Either MariaDBRef or MaxScaleRef must be provided.", Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -364,24 +273,16 @@ func (r *K8SMariadbComConnectionV1Alpha1Manifest) Schema(_ context.Context, _ da MarkdownDescription: "PasswordSecretKeyRef is a reference to the password to use for configuring the Connection. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_database_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_database_v1alpha1_manifest.go index 34bf7d1e6..73053c8d2 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_database_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_database_v1alpha1_manifest.go @@ -47,14 +47,9 @@ type K8SMariadbComDatabaseV1Alpha1ManifestData struct { CleanupPolicy *string `tfsdk:"cleanup_policy" json:"cleanupPolicy,omitempty"` Collate *string `tfsdk:"collate" json:"collate,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` RequeueInterval *string `tfsdk:"requeue_interval" json:"requeueInterval,omitempty"` @@ -170,57 +165,17 @@ func (r *K8SMariadbComDatabaseV1Alpha1Manifest) Schema(_ context.Context, _ data Description: "MariaDBRef is a reference to a MariaDB object.", MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_grant_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_grant_v1alpha1_manifest.go index 45612fa37..6373558bf 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_grant_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_grant_v1alpha1_manifest.go @@ -48,14 +48,9 @@ type K8SMariadbComGrantV1Alpha1ManifestData struct { GrantOption *bool `tfsdk:"grant_option" json:"grantOption,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` Privileges *[]string `tfsdk:"privileges" json:"privileges,omitempty"` RequeueInterval *string `tfsdk:"requeue_interval" json:"requeueInterval,omitempty"` @@ -181,57 +176,17 @@ func (r *K8SMariadbComGrantV1Alpha1Manifest) Schema(_ context.Context, _ datasou Description: "MariaDBRef is a reference to a MariaDB object.", MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_maria_db_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_maria_db_v1alpha1_manifest.go index e6654ddb5..523683490 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_maria_db_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_maria_db_v1alpha1_manifest.go @@ -45,87 +45,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Spec *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -136,18 +56,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -160,18 +69,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` @@ -183,87 +81,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { RestoreJob *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -274,18 +92,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -298,18 +105,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` @@ -319,92 +115,37 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"metadata" json:"metadata,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` } `tfsdk:"restore_job" json:"restoreJob,omitempty"` S3 *struct { AccessKeyIdSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"access_key_id_secret_key_ref" json:"accessKeyIdSecretKeyRef,omitempty"` Bucket *string `tfsdk:"bucket" json:"bucket,omitempty"` Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` Region *string `tfsdk:"region" json:"region,omitempty"` SecretAccessKeySecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_access_key_secret_key_ref" json:"secretAccessKeySecretKeyRef,omitempty"` SessionTokenSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"session_token_secret_key_ref" json:"sessionTokenSecretKeyRef,omitempty"` Tls *struct { CaSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"ca_secret_key_ref" json:"caSecretKeyRef,omitempty"` Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` } `tfsdk:"tls" json:"tls,omitempty"` } `tfsdk:"s3" json:"s3,omitempty"` TargetRecoveryTime *string `tfsdk:"target_recovery_time" json:"targetRecoveryTime,omitempty"` Volume *struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` Csi *struct { Driver *string `tfsdk:"driver" json:"driver,omitempty"` FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` @@ -414,120 +155,10 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` EmptyDir *struct { Medium *string `tfsdk:"medium" json:"medium,omitempty"` SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` Nfs *struct { Path *string `tfsdk:"path" json:"path,omitempty"` ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` @@ -537,131 +168,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` } `tfsdk:"volume" json:"volume,omitempty"` } `tfsdk:"bootstrap_from" json:"bootstrapFrom,omitempty"` Command *[]string `tfsdk:"command" json:"command,omitempty"` @@ -694,75 +200,66 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` ValueFrom *struct { ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` FieldRef *struct { ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` } `tfsdk:"value_from" json:"valueFrom,omitempty"` } `tfsdk:"env" json:"env,omitempty"` EnvFrom *[]struct { ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_ref" json:"secretRef,omitempty"` } `tfsdk:"env_from" json:"envFrom,omitempty"` Galera *struct { Agent *struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` + Args *[]string `tfsdk:"args" json:"args,omitempty"` + BasicAuth *struct { + Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` + PasswordSecretKeyRef *struct { + Generate *bool `tfsdk:"generate" json:"generate,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"password_secret_key_ref" json:"passwordSecretKeyRef,omitempty"` + Username *string `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basicAuth,omitempty"` Command *[]string `tfsdk:"command" json:"command,omitempty"` Env *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` ValueFrom *struct { ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` FieldRef *struct { ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` } `tfsdk:"value_from" json:"valueFrom,omitempty"` } `tfsdk:"env" json:"env,omitempty"` EnvFrom *[]struct { ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_ref" json:"secretRef,omitempty"` } `tfsdk:"env_from" json:"envFrom,omitempty"` GracefulShutdownTimeout *string `tfsdk:"graceful_shutdown_timeout" json:"gracefulShutdownTimeout,omitempty"` @@ -777,16 +274,8 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -794,12 +283,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` ReadinessProbe *struct { @@ -807,16 +291,8 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -824,62 +300,29 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` } `tfsdk:"agent" json:"agent,omitempty"` AvailableWhenDonor *bool `tfsdk:"available_when_donor" json:"availableWhenDonor,omitempty"` @@ -887,18 +330,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { ReuseStorageVolume *bool `tfsdk:"reuse_storage_volume" json:"reuseStorageVolume,omitempty"` VolumeClaimTemplate *struct { AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Metadata *struct { + Metadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"metadata" json:"metadata,omitempty"` @@ -914,10 +346,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` } `tfsdk:"config" json:"config,omitempty"` Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` @@ -930,35 +359,26 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` ValueFrom *struct { ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` FieldRef *struct { ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` } `tfsdk:"value_from" json:"valueFrom,omitempty"` } `tfsdk:"env" json:"env,omitempty"` EnvFrom *[]struct { ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_ref" json:"secretRef,omitempty"` } `tfsdk:"env_from" json:"envFrom,omitempty"` Image *string `tfsdk:"image" json:"image,omitempty"` @@ -968,16 +388,8 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -985,28 +397,15 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` ReadinessProbe *struct { Exec *struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -1014,207 +413,37 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` } `tfsdk:"init_container" json:"initContainer,omitempty"` InitJob *struct { - Affinity *struct { - AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` - } `tfsdk:"affinity" json:"affinity,omitempty"` - Args *[]string `tfsdk:"args" json:"args,omitempty"` Metadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"metadata" json:"metadata,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -1237,10 +466,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"metadata" json:"metadata,omitempty"` PodAffinity *bool `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -1262,153 +487,19 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"inherit_metadata" json:"inheritMetadata,omitempty"` InitContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` + Args *[]string `tfsdk:"args" json:"args,omitempty"` + Command *[]string `tfsdk:"command" json:"command,omitempty"` + Image *string `tfsdk:"image" json:"image,omitempty"` + ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` + Resources *struct { Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` } `tfsdk:"init_containers" json:"initContainers,omitempty"` LivenessProbe *struct { @@ -1416,16 +507,8 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -1433,12 +516,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` MaxScale *struct { Admin *struct { @@ -1450,7 +528,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"admin_password_secret_key_ref" json:"adminPasswordSecretKeyRef,omitempty"` AdminUsername *string `tfsdk:"admin_username" json:"adminUsername,omitempty"` ClientMaxConnections *int64 `tfsdk:"client_max_connections" json:"clientMaxConnections,omitempty"` @@ -1458,7 +535,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"client_password_secret_key_ref" json:"clientPasswordSecretKeyRef,omitempty"` ClientUsername *string `tfsdk:"client_username" json:"clientUsername,omitempty"` DeleteDefaultAdmin *bool `tfsdk:"delete_default_admin" json:"deleteDefaultAdmin,omitempty"` @@ -1467,7 +543,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"metrics_password_secret_key_ref" json:"metricsPasswordSecretKeyRef,omitempty"` MetricsUsername *string `tfsdk:"metrics_username" json:"metricsUsername,omitempty"` MonitorMaxConnections *int64 `tfsdk:"monitor_max_connections" json:"monitorMaxConnections,omitempty"` @@ -1475,7 +550,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"monitor_password_secret_key_ref" json:"monitorPasswordSecretKeyRef,omitempty"` MonitorUsername *string `tfsdk:"monitor_username" json:"monitorUsername,omitempty"` ServerMaxConnections *int64 `tfsdk:"server_max_connections" json:"serverMaxConnections,omitempty"` @@ -1483,7 +557,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"server_password_secret_key_ref" json:"serverPasswordSecretKeyRef,omitempty"` ServerUsername *string `tfsdk:"server_username" json:"serverUsername,omitempty"` SyncMaxConnections *int64 `tfsdk:"sync_max_connections" json:"syncMaxConnections,omitempty"` @@ -1491,7 +564,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"sync_password_secret_key_ref" json:"syncPasswordSecretKeyRef,omitempty"` SyncUsername *string `tfsdk:"sync_username" json:"syncUsername,omitempty"` } `tfsdk:"auth" json:"auth,omitempty"` @@ -1504,18 +576,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"sync" json:"sync,omitempty"` VolumeClaimTemplate *struct { AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Metadata *struct { + Metadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"metadata" json:"metadata,omitempty"` @@ -1531,10 +592,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` } `tfsdk:"config" json:"config,omitempty"` Connection *struct { @@ -1592,87 +650,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Exporter *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -1683,18 +661,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -1707,243 +674,15 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` Image *string `tfsdk:"image" json:"image,omitempty"` ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` ImagePullSecrets *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` - InitContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"init_containers" json:"initContainers,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` PodMetadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -1984,227 +723,10 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` + Resources *struct { Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` - SidecarContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"sidecar_containers" json:"sidecarContainers,omitempty"` Tolerations *[]struct { Effect *string `tfsdk:"effect" json:"effect,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` @@ -2212,339 +734,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` - TopologySpreadConstraints *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MaxSkew *int64 `tfsdk:"max_skew" json:"maxSkew,omitempty"` - MinDomains *int64 `tfsdk:"min_domains" json:"minDomains,omitempty"` - NodeAffinityPolicy *string `tfsdk:"node_affinity_policy" json:"nodeAffinityPolicy,omitempty"` - NodeTaintsPolicy *string `tfsdk:"node_taints_policy" json:"nodeTaintsPolicy,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - WhenUnsatisfiable *string `tfsdk:"when_unsatisfiable" json:"whenUnsatisfiable,omitempty"` - } `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - Volumes *[]struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Csi *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - NodePublishSecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"node_publish_secret_ref" json:"nodePublishSecretRef,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` - } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - EmptyDir *struct { - Medium *string `tfsdk:"medium" json:"medium,omitempty"` - SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` - } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Nfs *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Server *string `tfsdk:"server" json:"server,omitempty"` - } `tfsdk:"nfs" json:"nfs,omitempty"` - PersistentVolumeClaim *struct { - ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` - } `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"exporter" json:"exporter,omitempty"` ServiceMonitor *struct { Interval *string `tfsdk:"interval" json:"interval,omitempty"` @@ -2589,100 +778,15 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"update_strategy" json:"updateStrategy,omitempty"` } `tfsdk:"max_scale" json:"maxScale,omitempty"` MaxScaleRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"max_scale_ref" json:"maxScaleRef,omitempty"` Metrics *struct { Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` Exporter *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -2693,18 +797,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -2717,243 +810,15 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` Image *string `tfsdk:"image" json:"image,omitempty"` ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` ImagePullSecrets *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` - InitContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"init_containers" json:"initContainers,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` PodMetadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -2994,227 +859,10 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` + Resources *struct { Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` - SidecarContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"sidecar_containers" json:"sidecarContainers,omitempty"` Tolerations *[]struct { Effect *string `tfsdk:"effect" json:"effect,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` @@ -3222,345 +870,11 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` - TopologySpreadConstraints *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MaxSkew *int64 `tfsdk:"max_skew" json:"maxSkew,omitempty"` - MinDomains *int64 `tfsdk:"min_domains" json:"minDomains,omitempty"` - NodeAffinityPolicy *string `tfsdk:"node_affinity_policy" json:"nodeAffinityPolicy,omitempty"` - NodeTaintsPolicy *string `tfsdk:"node_taints_policy" json:"nodeTaintsPolicy,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - WhenUnsatisfiable *string `tfsdk:"when_unsatisfiable" json:"whenUnsatisfiable,omitempty"` - } `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - Volumes *[]struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Csi *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - NodePublishSecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"node_publish_secret_ref" json:"nodePublishSecretRef,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` - } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - EmptyDir *struct { - Medium *string `tfsdk:"medium" json:"medium,omitempty"` - SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` - } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Nfs *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Server *string `tfsdk:"server" json:"server,omitempty"` - } `tfsdk:"nfs" json:"nfs,omitempty"` - PersistentVolumeClaim *struct { - ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` - } `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"exporter" json:"exporter,omitempty"` PasswordSecretKeyRef *struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"password_secret_key_ref" json:"passwordSecretKeyRef,omitempty"` ServiceMonitor *struct { Interval *string `tfsdk:"interval" json:"interval,omitempty"` @@ -3572,33 +886,28 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"metrics" json:"metrics,omitempty"` MyCnf *string `tfsdk:"my_cnf" json:"myCnf,omitempty"` MyCnfConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"my_cnf_config_map_key_ref" json:"myCnfConfigMapKeyRef,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` PasswordHashSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"password_hash_secret_key_ref" json:"passwordHashSecretKeyRef,omitempty"` PasswordPlugin *struct { PluginArgSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"plugin_arg_secret_key_ref" json:"pluginArgSecretKeyRef,omitempty"` PluginNameSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"plugin_name_secret_key_ref" json:"pluginNameSecretKeyRef,omitempty"` } `tfsdk:"password_plugin" json:"passwordPlugin,omitempty"` PasswordSecretKeyRef *struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"password_secret_key_ref" json:"passwordSecretKeyRef,omitempty"` PodDisruptionBudget *struct { MaxUnavailable *string `tfsdk:"max_unavailable" json:"maxUnavailable,omitempty"` @@ -3683,16 +992,8 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -3700,12 +1001,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Replicas *int64 `tfsdk:"replicas" json:"replicas,omitempty"` ReplicasAllowEvenNumber *bool `tfsdk:"replicas_allow_even_number" json:"replicasAllowEvenNumber,omitempty"` @@ -3724,7 +1020,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"repl_password_secret_key_ref" json:"replPasswordSecretKeyRef,omitempty"` SyncTimeout *string `tfsdk:"sync_timeout" json:"syncTimeout,omitempty"` WaitPoint *string `tfsdk:"wait_point" json:"waitPoint,omitempty"` @@ -3732,10 +1027,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { SyncBinlog *bool `tfsdk:"sync_binlog" json:"syncBinlog,omitempty"` } `tfsdk:"replication" json:"replication,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -3744,7 +1035,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"root_password_secret_key_ref" json:"rootPasswordSecretKeyRef,omitempty"` SecondaryConnection *struct { HealthCheck *struct { @@ -3783,36 +1073,15 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"secondary_service" json:"secondaryService,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` Service *struct { AllocateLoadBalancerNodePorts *bool `tfsdk:"allocate_load_balancer_node_ports" json:"allocateLoadBalancerNodePorts,omitempty"` @@ -3828,153 +1097,19 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"service" json:"service,omitempty"` ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` SidecarContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` + Args *[]string `tfsdk:"args" json:"args,omitempty"` + Command *[]string `tfsdk:"command" json:"command,omitempty"` + Image *string `tfsdk:"image" json:"image,omitempty"` + ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` + Resources *struct { Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` } `tfsdk:"sidecar_containers" json:"sidecarContainers,omitempty"` Storage *struct { @@ -3984,18 +1119,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` VolumeClaimTemplate *struct { AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Metadata *struct { + Metadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"metadata" json:"metadata,omitempty"` @@ -4011,10 +1135,7 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` WaitForVolumeResize *bool `tfsdk:"wait_for_volume_resize" json:"waitForVolumeResize,omitempty"` } `tfsdk:"storage" json:"storage,omitempty"` @@ -4054,62 +1175,12 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { } `tfsdk:"update_strategy" json:"updateStrategy,omitempty"` Username *string `tfsdk:"username" json:"username,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` Csi *struct { Driver *string `tfsdk:"driver" json:"driver,omitempty"` FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` @@ -4119,120 +1190,10 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` EmptyDir *struct { Medium *string `tfsdk:"medium" json:"medium,omitempty"` SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` Nfs *struct { Path *string `tfsdk:"path" json:"path,omitempty"` @@ -4243,131 +1204,6 @@ type K8SMariadbComMariaDbV1Alpha1ManifestData struct { ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` } `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } @@ -4461,90 +1297,80 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", Attributes: map[string]schema.Attribute{ "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", + Description: "", + MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, }, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, Optional: true, Computed: false, }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, }, Required: true, Optional: false, @@ -4552,8 +1378,8 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas }, "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -4565,39 +1391,39 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ + "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", Required: true, Optional: false, Computed: false, }, "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", Required: true, Optional: false, Computed: false, }, "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", ElementType: types.StringType, Required: false, Optional: true, @@ -4610,46 +1436,27 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, + Required: false, + Optional: true, + Computed: false, + }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, - Required: true, - Optional: false, - Computed: false, }, }, Required: false, @@ -4661,125 +1468,204 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "bootstrap_from": schema.SingleNestedAttribute{ + Description: "BootstrapFrom defines a source to bootstrap from.", + MarkdownDescription: "BootstrapFrom defines a source to bootstrap from.", + Attributes: map[string]schema.Attribute{ + "backup_ref": schema.SingleNestedAttribute{ + Description: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", + MarkdownDescription: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "restore_job": schema.SingleNestedAttribute{ + Description: "RestoreJob defines additional properties for the Job used to perform the Restore.", + MarkdownDescription: "RestoreJob defines additional properties for the Job used to perform the Restore.", + Attributes: map[string]schema.Attribute{ + "affinity": schema.SingleNestedAttribute{ + Description: "Affinity to be used in the Pod.", + MarkdownDescription: "Affinity to be used in the Pod.", + Attributes: map[string]schema.Attribute{ + "anti_affinity_enabled": schema.BoolAttribute{ + Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + Required: false, + Optional: true, + Computed: false, + }, + + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + Attributes: map[string]schema.Attribute{ + "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, + + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, + "weight": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, Computed: false, }, }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", + "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, }, + Required: false, + Optional: true, + Computed: false, + }, + + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -4787,49 +1673,23 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, Computed: false, }, }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -4837,153 +1697,62 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata defines additional metadata for the bootstrap Jobs.", + MarkdownDescription: "Metadata defines additional metadata for the bootstrap Jobs.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -4996,174 +1765,110 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", + "s3": schema.SingleNestedAttribute{ + Description: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", + MarkdownDescription: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "access_key_id_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", + MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "bucket": schema.StringAttribute{ + Description: "Bucket is the name Name of the bucket to store backups.", + MarkdownDescription: "Bucket is the name Name of the bucket to store backups.", + Required: true, + Optional: false, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "endpoint": schema.StringAttribute{ + Description: "Endpoint is the S3 API endpoint without scheme.", + MarkdownDescription: "Endpoint is the S3 API endpoint without scheme.", + Required: true, + Optional: false, + Computed: false, + }, - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "prefix": schema.StringAttribute{ + Description: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", + MarkdownDescription: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", + Required: false, + Optional: true, + Computed: false, + }, - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "region": schema.StringAttribute{ + Description: "Region is the S3 region name to use.", + MarkdownDescription: "Region is the S3 region name to use.", + Required: false, + Optional: true, + Computed: false, + }, - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "secret_access_key_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", + MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, + "session_token_secret_key_ref": schema.SingleNestedAttribute{ + Description: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", + MarkdownDescription: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -5171,153 +1876,41 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "tls": schema.SingleNestedAttribute{ + Description: "TLS provides the configuration required to establish TLS connections with S3.", + MarkdownDescription: "TLS provides the configuration required to establish TLS connections with S3.", + Attributes: map[string]schema.Attribute{ + "ca_secret_key_ref": schema.SingleNestedAttribute{ + Description: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", + MarkdownDescription: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable TLS.", + MarkdownDescription: "Enabled is a flag to enable TLS.", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -5329,252 +1922,52 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "bootstrap_from": schema.SingleNestedAttribute{ - Description: "BootstrapFrom defines a source to bootstrap from.", - MarkdownDescription: "BootstrapFrom defines a source to bootstrap from.", - Attributes: map[string]schema.Attribute{ - "backup_ref": schema.SingleNestedAttribute{ - Description: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", - MarkdownDescription: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "target_recovery_time": schema.StringAttribute{ + Description: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", + MarkdownDescription: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + validators.DateTime64Validator(), }, - Required: false, - Optional: true, - Computed: false, }, - "restore_job": schema.SingleNestedAttribute{ - Description: "RestoreJob defines additional properties for the Job used to perform the Restore.", - MarkdownDescription: "RestoreJob defines additional properties for the Job used to perform the Restore.", + "volume": schema.SingleNestedAttribute{ + Description: "Volume is a Kubernetes Volume object that contains a backup.", + MarkdownDescription: "Volume is a Kubernetes Volume object that contains a backup.", Attributes: map[string]schema.Attribute{ - "affinity": schema.SingleNestedAttribute{ - Description: "Affinity to be used in the Pod.", - MarkdownDescription: "Affinity to be used in the Pod.", + "csi": schema.SingleNestedAttribute{ + Description: "Represents a source location of a volume to mount, managed by an external CSI driver", + MarkdownDescription: "Represents a source location of a volume to mount, managed by an external CSI driver", Attributes: map[string]schema.Attribute{ - "anti_affinity_enabled": schema.BoolAttribute{ - Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + "driver": schema.StringAttribute{ + Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + Required: true, + Optional: false, + Computed: false, + }, + + "fs_type": schema.StringAttribute{ + Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", + MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", Required: false, Optional: true, Computed: false, }, - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", + "node_publish_secret_ref": schema.SingleNestedAttribute{ + Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", + MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -5582,20435 +1975,46 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "read_only": schema.BoolAttribute{ + Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", + MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "volume_attributes": schema.MapAttribute{ + Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata defines additional metadata for the bootstrap Jobs.", - MarkdownDescription: "Metadata defines additional metadata for the bootstrap Jobs.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "s3": schema.SingleNestedAttribute{ - Description: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", - MarkdownDescription: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", - Attributes: map[string]schema.Attribute{ - "access_key_id_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", - MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "bucket": schema.StringAttribute{ - Description: "Bucket is the name Name of the bucket to store backups.", - MarkdownDescription: "Bucket is the name Name of the bucket to store backups.", - Required: true, - Optional: false, - Computed: false, - }, - - "endpoint": schema.StringAttribute{ - Description: "Endpoint is the S3 API endpoint without scheme.", - MarkdownDescription: "Endpoint is the S3 API endpoint without scheme.", - Required: true, - Optional: false, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", - MarkdownDescription: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "region": schema.StringAttribute{ - Description: "Region is the S3 region name to use.", - MarkdownDescription: "Region is the S3 region name to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_access_key_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", - MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "session_token_secret_key_ref": schema.SingleNestedAttribute{ - Description: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", - MarkdownDescription: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "tls": schema.SingleNestedAttribute{ - Description: "TLS provides the configuration required to establish TLS connections with S3.", - MarkdownDescription: "TLS provides the configuration required to establish TLS connections with S3.", - Attributes: map[string]schema.Attribute{ - "ca_secret_key_ref": schema.SingleNestedAttribute{ - Description: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", - MarkdownDescription: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable TLS.", - MarkdownDescription: "Enabled is a flag to enable TLS.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "target_recovery_time": schema.StringAttribute{ - Description: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", - MarkdownDescription: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - validators.DateTime64Validator(), - }, - }, - - "volume": schema.SingleNestedAttribute{ - Description: "Volume is a Kubernetes Volume object that contains a backup.", - MarkdownDescription: "Volume is a Kubernetes Volume object that contains a backup.", - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, - - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, - - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, - - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, - - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, - - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, - - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, - - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, - - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, - - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, - - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, - - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, - - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, - - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, - - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Required: true, - Optional: false, - Computed: false, - }, - - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", - Required: false, - Optional: true, - Computed: false, - }, - - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: true, - Optional: false, - Computed: false, - }, - - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - Required: false, - Optional: true, - Computed: false, - }, - - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", - Required: true, - Optional: false, - Computed: false, - }, - - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - Required: false, - Optional: true, - Computed: false, - }, - - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "connection": schema.SingleNestedAttribute{ - Description: "Connection defines a template to configure the general Connection object. This Connection provides the initial User access to the initial Database. It will make use of the Service to route network traffic to all Pods.", - MarkdownDescription: "Connection defines a template to configure the general Connection object. This Connection provides the initial User access to the initial Database. It will make use of the Service to route network traffic to all Pods.", - Attributes: map[string]schema.Attribute{ - "health_check": schema.SingleNestedAttribute{ - Description: "HealthCheck to be used in the Connection.", - MarkdownDescription: "HealthCheck to be used in the Connection.", - Attributes: map[string]schema.Attribute{ - "interval": schema.StringAttribute{ - Description: "Interval used to perform health checks.", - MarkdownDescription: "Interval used to perform health checks.", - Required: false, - Optional: true, - Computed: false, - }, - - "retry_interval": schema.StringAttribute{ - Description: "RetryInterval is the interval used to perform health check retries.", - MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params to be used in the Connection.", - MarkdownDescription: "Params to be used in the Connection.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "SecretName to be used in the Connection.", - MarkdownDescription: "SecretName to be used in the Connection.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_template": schema.SingleNestedAttribute{ - Description: "SecretTemplate to be used in the Connection.", - MarkdownDescription: "SecretTemplate to be used in the Connection.", - Attributes: map[string]schema.Attribute{ - "database_key": schema.StringAttribute{ - Description: "DatabaseKey to be used in the Secret.", - MarkdownDescription: "DatabaseKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "format": schema.StringAttribute{ - Description: "Format to be used in the Secret.", - MarkdownDescription: "Format to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_key": schema.StringAttribute{ - Description: "HostKey to be used in the Secret.", - MarkdownDescription: "HostKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "Key to be used in the Secret.", - MarkdownDescription: "Key to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Secret object.", - MarkdownDescription: "Metadata to be added to the Secret object.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "password_key": schema.StringAttribute{ - Description: "PasswordKey to be used in the Secret.", - MarkdownDescription: "PasswordKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "port_key": schema.StringAttribute{ - Description: "PortKey to be used in the Secret.", - MarkdownDescription: "PortKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "username_key": schema.StringAttribute{ - Description: "UsernameKey to be used in the Secret.", - MarkdownDescription: "UsernameKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_name": schema.StringAttribute{ - Description: "ServiceName to be used in the Connection.", - MarkdownDescription: "ServiceName to be used in the Connection.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "database": schema.StringAttribute{ - Description: "Database is the name of the initial Database.", - MarkdownDescription: "Database is the name of the initial Database.", - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "galera": schema.SingleNestedAttribute{ - Description: "Replication configures high availability via Galera.", - MarkdownDescription: "Replication configures high availability via Galera.", - Attributes: map[string]schema.Attribute{ - "agent": schema.SingleNestedAttribute{ - Description: "GaleraAgent is a sidecar agent that co-operates with mariadb-operator.", - MarkdownDescription: "GaleraAgent is a sidecar agent that co-operates with mariadb-operator.", - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "graceful_shutdown_timeout": schema.StringAttribute{ - Description: "GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.", - MarkdownDescription: "GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.", - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "kubernetes_auth": schema.SingleNestedAttribute{ - Description: "KubernetesAuth to be used by the agent container", - MarkdownDescription: "KubernetesAuth to be used by the agent container", - Attributes: map[string]schema.Attribute{ - "auth_delegator_role_name": schema.StringAttribute{ - Description: "AuthDelegatorRoleName is the name of the ClusterRoleBinding that is associated with the 'system:auth-delegator' ClusterRole. It is necessary for creating TokenReview objects in order for the agent to validate the service account token.", - MarkdownDescription: "AuthDelegatorRoleName is the name of the ClusterRoleBinding that is associated with the 'system:auth-delegator' ClusterRole. It is necessary for creating TokenReview objects in order for the agent to validate the service account token.", - Required: false, - Optional: true, - Computed: false, - }, - - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable KubernetesAuth", - MarkdownDescription: "Enabled is a flag to enable KubernetesAuth", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port where the agent will be listening for connections.", - MarkdownDescription: "Port where the agent will be listening for connections.", - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "available_when_donor": schema.BoolAttribute{ - Description: "AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.", - MarkdownDescription: "AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "config": schema.SingleNestedAttribute{ - Description: "GaleraConfig defines storage options for the Galera configuration files.", - MarkdownDescription: "GaleraConfig defines storage options for the Galera configuration files.", - Attributes: map[string]schema.Attribute{ - "reuse_storage_volume": schema.BoolAttribute{ - Description: "ReuseStorageVolume indicates that storage volume used by MariaDB should be reused to store the Galera configuration files. It defaults to false, which implies that a dedicated volume for the Galera configuration files is provisioned.", - MarkdownDescription: "ReuseStorageVolume indicates that storage volume used by MariaDB should be reused to store the Galera configuration files. It defaults to false, which implies that a dedicated volume for the Galera configuration files is provisioned.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.", - MarkdownDescription: "VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the PVC metadata.", - MarkdownDescription: "Metadata to be added to the PVC metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable Galera.", - MarkdownDescription: "Enabled is a flag to enable Galera.", - Required: false, - Optional: true, - Computed: false, - }, - - "galera_lib_path": schema.StringAttribute{ - Description: "GaleraLibPath is a path inside the MariaDB image to the wsrep provider plugin. It is defaulted if not provided. More info: https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-provider.", - MarkdownDescription: "GaleraLibPath is a path inside the MariaDB image to the wsrep provider plugin. It is defaulted if not provided. More info: https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-provider.", - Required: false, - Optional: true, - Computed: false, - }, - - "init_container": schema.SingleNestedAttribute{ - Description: "InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.", - MarkdownDescription: "InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.", - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "init_job": schema.SingleNestedAttribute{ - Description: "InitJob defines a Job that co-operates with mariadb-operator by performing initialization tasks.", - MarkdownDescription: "InitJob defines a Job that co-operates with mariadb-operator by performing initialization tasks.", - Attributes: map[string]schema.Attribute{ - "affinity": schema.SingleNestedAttribute{ - Description: "Affinity to be used in the Pod.", - MarkdownDescription: "Affinity to be used in the Pod.", - Attributes: map[string]schema.Attribute{ - "anti_affinity_enabled": schema.BoolAttribute{ - Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata defines additional metadata for the bootstrap Jobs.", - MarkdownDescription: "Metadata defines additional metadata for the bootstrap Jobs.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "primary": schema.SingleNestedAttribute{ - Description: "Primary is the Galera configuration for the primary node.", - MarkdownDescription: "Primary is the Galera configuration for the primary node.", - Attributes: map[string]schema.Attribute{ - "automatic_failover": schema.BoolAttribute{ - Description: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", - MarkdownDescription: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", - Required: false, - Optional: true, - Computed: false, - }, - - "pod_index": schema.Int64Attribute{ - Description: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", - MarkdownDescription: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "provider_options": schema.MapAttribute{ - Description: "ProviderOptions is map of Galera configuration parameters. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options.", - MarkdownDescription: "ProviderOptions is map of Galera configuration parameters. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "recovery": schema.SingleNestedAttribute{ - Description: "GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy. More info: https://galeracluster.com/library/documentation/crash-recovery.html.", - MarkdownDescription: "GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy. More info: https://galeracluster.com/library/documentation/crash-recovery.html.", - Attributes: map[string]schema.Attribute{ - "cluster_bootstrap_timeout": schema.StringAttribute{ - Description: "ClusterBootstrapTimeout is the time limit for bootstrapping a cluster. Once this timeout is reached, the Galera recovery state is reset and a new cluster bootstrap will be attempted.", - MarkdownDescription: "ClusterBootstrapTimeout is the time limit for bootstrapping a cluster. Once this timeout is reached, the Galera recovery state is reset and a new cluster bootstrap will be attempted.", - Required: false, - Optional: true, - Computed: false, - }, - - "cluster_healthy_timeout": schema.StringAttribute{ - Description: "ClusterHealthyTimeout represents the duration at which a Galera cluster, that consistently failed health checks, is considered unhealthy, and consequently the Galera recovery process will be initiated by the operator.", - MarkdownDescription: "ClusterHealthyTimeout represents the duration at which a Galera cluster, that consistently failed health checks, is considered unhealthy, and consequently the Galera recovery process will be initiated by the operator.", - Required: false, - Optional: true, - Computed: false, - }, - - "cluster_monitor_interval": schema.StringAttribute{ - Description: "ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.", - MarkdownDescription: "ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.", - Required: false, - Optional: true, - Computed: false, - }, - - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable GaleraRecovery.", - MarkdownDescription: "Enabled is a flag to enable GaleraRecovery.", - Required: false, - Optional: true, - Computed: false, - }, - - "force_cluster_bootstrap_in_pod": schema.StringAttribute{ - Description: "ForceClusterBootstrapInPod allows you to manually initiate the bootstrap process in a specific Pod. IMPORTANT: Use this option only in exceptional circumstances. Not selecting the Pod with the highest sequence number may result in data loss. IMPORTANT: Ensure you unset this field after completing the bootstrap to allow the operator to choose the appropriate Pod to bootstrap from in an event of cluster recovery.", - MarkdownDescription: "ForceClusterBootstrapInPod allows you to manually initiate the bootstrap process in a specific Pod. IMPORTANT: Use this option only in exceptional circumstances. Not selecting the Pod with the highest sequence number may result in data loss. IMPORTANT: Ensure you unset this field after completing the bootstrap to allow the operator to choose the appropriate Pod to bootstrap from in an event of cluster recovery.", - Required: false, - Optional: true, - Computed: false, - }, - - "job": schema.SingleNestedAttribute{ - Description: "Job defines a Job that co-operates with mariadb-operator by performing the Galera cluster recovery .", - MarkdownDescription: "Job defines a Job that co-operates with mariadb-operator by performing the Galera cluster recovery .", - Attributes: map[string]schema.Attribute{ - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata defines additional metadata for the Galera recovery Jobs.", - MarkdownDescription: "Metadata defines additional metadata for the Galera recovery Jobs.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_affinity": schema.BoolAttribute{ - Description: "PodAffinity indicates whether the recovery Jobs should run in the same Node as the MariaDB Pods. It defaults to true.", - MarkdownDescription: "PodAffinity indicates whether the recovery Jobs should run in the same Node as the MariaDB Pods. It defaults to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "min_cluster_size": schema.StringAttribute{ - Description: "MinClusterSize is the minimum number of replicas to consider the cluster healthy. It can be either a number of replicas (1) or a percentage (50%). If Galera consistently reports less replicas than this value for the given 'ClusterHealthyTimeout' interval, a cluster recovery is iniated. It defaults to '1' replica.", - MarkdownDescription: "MinClusterSize is the minimum number of replicas to consider the cluster healthy. It can be either a number of replicas (1) or a percentage (50%). If Galera consistently reports less replicas than this value for the given 'ClusterHealthyTimeout' interval, a cluster recovery is iniated. It defaults to '1' replica.", - Required: false, - Optional: true, - Computed: false, - }, - - "pod_recovery_timeout": schema.StringAttribute{ - Description: "PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.", - MarkdownDescription: "PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.", - Required: false, - Optional: true, - Computed: false, - }, - - "pod_sync_timeout": schema.StringAttribute{ - Description: "PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.", - MarkdownDescription: "PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "replica_threads": schema.Int64Attribute{ - Description: "ReplicaThreads is the number of replica threads used to apply Galera write sets in parallel. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_slave_threads.", - MarkdownDescription: "ReplicaThreads is the number of replica threads used to apply Galera write sets in parallel. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_slave_threads.", - Required: false, - Optional: true, - Computed: false, - }, - - "sst": schema.StringAttribute{ - Description: "SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.", - MarkdownDescription: "SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("rsync", "mariabackup", "mysqldump"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'. Only MariaDB official images are supported.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'. Only MariaDB official images are supported.", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "image_pull_secrets": schema.ListNestedAttribute{ - Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "inherit_metadata": schema.SingleNestedAttribute{ - Description: "InheritMetadata defines the metadata to be inherited by children resources.", - MarkdownDescription: "InheritMetadata defines the metadata to be inherited by children resources.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "init_containers": schema.ListNestedAttribute{ - Description: "InitContainers to be used in the Pod.", - MarkdownDescription: "InitContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "max_scale": schema.SingleNestedAttribute{ - Description: "MaxScale is the MaxScale specification that defines the MaxScale resource to be used with the current MariaDB. When enabling this field, MaxScaleRef is automatically set.", - MarkdownDescription: "MaxScale is the MaxScale specification that defines the MaxScale resource to be used with the current MariaDB. When enabling this field, MaxScaleRef is automatically set.", - Attributes: map[string]schema.Attribute{ - "admin": schema.SingleNestedAttribute{ - Description: "Admin configures the admin REST API and GUI.", - MarkdownDescription: "Admin configures the admin REST API and GUI.", - Attributes: map[string]schema.Attribute{ - "gui_enabled": schema.BoolAttribute{ - Description: "GuiEnabled indicates whether the admin GUI should be enabled.", - MarkdownDescription: "GuiEnabled indicates whether the admin GUI should be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port where the admin REST API and GUI will be exposed.", - MarkdownDescription: "Port where the admin REST API and GUI will be exposed.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "auth": schema.SingleNestedAttribute{ - Description: "Auth defines the credentials required for MaxScale to connect to MariaDB.", - MarkdownDescription: "Auth defines the credentials required for MaxScale to connect to MariaDB.", - Attributes: map[string]schema.Attribute{ - "admin_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", - MarkdownDescription: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "admin_username": schema.StringAttribute{ - Description: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", - MarkdownDescription: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "client_max_connections": schema.Int64Attribute{ - Description: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - Required: false, - Optional: true, - Computed: false, - }, - - "client_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "client_username": schema.StringAttribute{ - Description: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", - MarkdownDescription: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "delete_default_admin": schema.BoolAttribute{ - Description: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", - MarkdownDescription: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "generate": schema.BoolAttribute{ - Description: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", - MarkdownDescription: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", - Required: false, - Optional: true, - Computed: false, - }, - - "metrics_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "metrics_username": schema.StringAttribute{ - Description: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", - MarkdownDescription: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "monitor_max_connections": schema.Int64Attribute{ - Description: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - Required: false, - Optional: true, - Computed: false, - }, - - "monitor_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "monitor_username": schema.StringAttribute{ - Description: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", - MarkdownDescription: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "server_max_connections": schema.Int64Attribute{ - Description: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - Required: false, - Optional: true, - Computed: false, - }, - - "server_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "server_username": schema.StringAttribute{ - Description: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", - MarkdownDescription: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "sync_max_connections": schema.Int64Attribute{ - Description: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - Required: false, - Optional: true, - Computed: false, - }, - - "sync_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "SyncPasswordSecretKeyRef is Secret key reference to the password used by MaxScale config to connect to MariaDB server. It is defaulted when HA is enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "SyncPasswordSecretKeyRef is Secret key reference to the password used by MaxScale config to connect to MariaDB server. It is defaulted when HA is enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "sync_username": schema.StringAttribute{ - Description: "MonitoSyncUsernamerUsername is the user used by MaxScale config sync to connect to MariaDB server. It is defaulted when HA is enabled.", - MarkdownDescription: "MonitoSyncUsernamerUsername is the user used by MaxScale config sync to connect to MariaDB server. It is defaulted when HA is enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config": schema.SingleNestedAttribute{ - Description: "Config defines the MaxScale configuration.", - MarkdownDescription: "Config defines the MaxScale configuration.", - Attributes: map[string]schema.Attribute{ - "params": schema.MapAttribute{ - Description: "Params is a key value pair of parameters to be used in the MaxScale static configuration file. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#global-settings.", - MarkdownDescription: "Params is a key value pair of parameters to be used in the MaxScale static configuration file. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#global-settings.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "sync": schema.SingleNestedAttribute{ - Description: "Sync defines how to replicate configuration across MaxScale replicas. It is defaulted when HA is enabled.", - MarkdownDescription: "Sync defines how to replicate configuration across MaxScale replicas. It is defaulted when HA is enabled.", - Attributes: map[string]schema.Attribute{ - "database": schema.StringAttribute{ - Description: "Database is the MariaDB logical database where the 'maxscale_config' table will be created in order to persist and synchronize config changes. If not provided, it defaults to 'mysql'.", - MarkdownDescription: "Database is the MariaDB logical database where the 'maxscale_config' table will be created in order to persist and synchronize config changes. If not provided, it defaults to 'mysql'.", - Required: false, - Optional: true, - Computed: false, - }, - - "interval": schema.StringAttribute{ - Description: "Interval defines the config synchronization interval. It is defaulted if not provided.", - MarkdownDescription: "Interval defines the config synchronization interval. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout": schema.StringAttribute{ - Description: "Interval defines the config synchronization timeout. It is defaulted if not provided.", - MarkdownDescription: "Interval defines the config synchronization timeout. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.", - MarkdownDescription: "VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the PVC metadata.", - MarkdownDescription: "Metadata to be added to the PVC metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "connection": schema.SingleNestedAttribute{ - Description: "Connection provides a template to define the Connection for MaxScale.", - MarkdownDescription: "Connection provides a template to define the Connection for MaxScale.", - Attributes: map[string]schema.Attribute{ - "health_check": schema.SingleNestedAttribute{ - Description: "HealthCheck to be used in the Connection.", - MarkdownDescription: "HealthCheck to be used in the Connection.", - Attributes: map[string]schema.Attribute{ - "interval": schema.StringAttribute{ - Description: "Interval used to perform health checks.", - MarkdownDescription: "Interval used to perform health checks.", - Required: false, - Optional: true, - Computed: false, - }, - - "retry_interval": schema.StringAttribute{ - Description: "RetryInterval is the interval used to perform health check retries.", - MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params to be used in the Connection.", - MarkdownDescription: "Params to be used in the Connection.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "SecretName to be used in the Connection.", - MarkdownDescription: "SecretName to be used in the Connection.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_template": schema.SingleNestedAttribute{ - Description: "SecretTemplate to be used in the Connection.", - MarkdownDescription: "SecretTemplate to be used in the Connection.", - Attributes: map[string]schema.Attribute{ - "database_key": schema.StringAttribute{ - Description: "DatabaseKey to be used in the Secret.", - MarkdownDescription: "DatabaseKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "format": schema.StringAttribute{ - Description: "Format to be used in the Secret.", - MarkdownDescription: "Format to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_key": schema.StringAttribute{ - Description: "HostKey to be used in the Secret.", - MarkdownDescription: "HostKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "Key to be used in the Secret.", - MarkdownDescription: "Key to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Secret object.", - MarkdownDescription: "Metadata to be added to the Secret object.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "password_key": schema.StringAttribute{ - Description: "PasswordKey to be used in the Secret.", - MarkdownDescription: "PasswordKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "port_key": schema.StringAttribute{ - Description: "PortKey to be used in the Secret.", - MarkdownDescription: "PortKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "username_key": schema.StringAttribute{ - Description: "UsernameKey to be used in the Secret.", - MarkdownDescription: "UsernameKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_name": schema.StringAttribute{ - Description: "ServiceName to be used in the Connection.", - MarkdownDescription: "ServiceName to be used in the Connection.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable a MaxScale instance to be used with the current MariaDB.", - MarkdownDescription: "Enabled is a flag to enable a MaxScale instance to be used with the current MariaDB.", - Required: false, - Optional: true, - Computed: false, - }, - - "gui_kubernetes_service": schema.SingleNestedAttribute{ - Description: "GuiKubernetesService define a template for a Kubernetes Service object to connect to MaxScale's GUI.", - MarkdownDescription: "GuiKubernetesService define a template for a Kubernetes Service object to connect to MaxScale's GUI.", - Attributes: map[string]schema.Attribute{ - "allocate_load_balancer_node_ports": schema.BoolAttribute{ - Description: "AllocateLoadBalancerNodePorts Service field.", - MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "external_traffic_policy": schema.StringAttribute{ - Description: "ExternalTrafficPolicy Service field.", - MarkdownDescription: "ExternalTrafficPolicy Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_ip": schema.StringAttribute{ - Description: "LoadBalancerIP Service field.", - MarkdownDescription: "LoadBalancerIP Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_source_ranges": schema.ListAttribute{ - Description: "LoadBalancerSourceRanges Service field.", - MarkdownDescription: "LoadBalancerSourceRanges Service field.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Service metadata.", - MarkdownDescription: "Metadata to be added to the Service metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "session_affinity": schema.StringAttribute{ - Description: "SessionAffinity Service field.", - MarkdownDescription: "SessionAffinity Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MaxScale instances. The supported format is ':'. Only MariaDB official images are supported.", - MarkdownDescription: "Image name to be used by the MaxScale instances. The supported format is ':'. Only MariaDB official images are supported.", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "kubernetes_service": schema.SingleNestedAttribute{ - Description: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", - MarkdownDescription: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", - Attributes: map[string]schema.Attribute{ - "allocate_load_balancer_node_ports": schema.BoolAttribute{ - Description: "AllocateLoadBalancerNodePorts Service field.", - MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "external_traffic_policy": schema.StringAttribute{ - Description: "ExternalTrafficPolicy Service field.", - MarkdownDescription: "ExternalTrafficPolicy Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_ip": schema.StringAttribute{ - Description: "LoadBalancerIP Service field.", - MarkdownDescription: "LoadBalancerIP Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_source_ranges": schema.ListAttribute{ - Description: "LoadBalancerSourceRanges Service field.", - MarkdownDescription: "LoadBalancerSourceRanges Service field.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Service metadata.", - MarkdownDescription: "Metadata to be added to the Service metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "session_affinity": schema.StringAttribute{ - Description: "SessionAffinity Service field.", - MarkdownDescription: "SessionAffinity Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "metrics": schema.SingleNestedAttribute{ - Description: "Metrics configures metrics and how to scrape them.", - MarkdownDescription: "Metrics configures metrics and how to scrape them.", - Attributes: map[string]schema.Attribute{ - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable Metrics", - MarkdownDescription: "Enabled is a flag to enable Metrics", - Required: false, - Optional: true, - Computed: false, - }, - - "exporter": schema.SingleNestedAttribute{ - Description: "Exporter defines the metrics exporter container.", - MarkdownDescription: "Exporter defines the metrics exporter container.", - Attributes: map[string]schema.Attribute{ - "affinity": schema.SingleNestedAttribute{ - Description: "Affinity to be used in the Pod.", - MarkdownDescription: "Affinity to be used in the Pod.", - Attributes: map[string]schema.Attribute{ - "anti_affinity_enabled": schema.BoolAttribute{ - Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", - MarkdownDescription: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "image_pull_secrets": schema.ListNestedAttribute{ - Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "init_containers": schema.ListNestedAttribute{ - Description: "InitContainers to be used in the Pod.", - MarkdownDescription: "InitContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "node_selector": schema.MapAttribute{ - Description: "NodeSelector to be used in the Pod.", - MarkdownDescription: "NodeSelector to be used in the Pod.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_metadata": schema.SingleNestedAttribute{ - Description: "PodMetadata defines extra metadata for the Pod.", - MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds pod-level security attributes and common container settings.", - MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", - Attributes: map[string]schema.Attribute{ - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group": schema.Int64Attribute{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups_policy": schema.StringAttribute{ - Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "sysctls": schema.ListNestedAttribute{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of a property to set", - MarkdownDescription: "Name of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value of a property to set", - MarkdownDescription: "Value of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port where the exporter will be listening for connections.", - MarkdownDescription: "Port where the exporter will be listening for connections.", - Required: false, - Optional: true, - Computed: false, - }, - - "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName to be used in the Pod.", - MarkdownDescription: "PriorityClassName to be used in the Pod.", - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "sidecar_containers": schema.ListNestedAttribute{ - Description: "SidecarContainers to be used in the Pod.", - MarkdownDescription: "SidecarContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "tolerations": schema.ListNestedAttribute{ - Description: "Tolerations to be used in the Pod.", - MarkdownDescription: "Tolerations to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "effect": schema.StringAttribute{ - Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - Required: false, - Optional: true, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - Required: false, - Optional: true, - Computed: false, - }, - - "toleration_seconds": schema.Int64Attribute{ - Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - Required: false, - Optional: true, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_spread_constraints": schema.ListNestedAttribute{ - Description: "TopologySpreadConstraints to be used in the Pod.", - MarkdownDescription: "TopologySpreadConstraints to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - MarkdownDescription: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "max_skew": schema.Int64Attribute{ - Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - MarkdownDescription: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - - "min_domains": schema.Int64Attribute{ - Description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - MarkdownDescription: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity_policy": schema.StringAttribute{ - Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_taints_policy": schema.StringAttribute{ - Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - MarkdownDescription: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, - - "when_unsatisfiable": schema.StringAttribute{ - Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - MarkdownDescription: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volumes": schema.ListNestedAttribute{ - Description: "Volumes to be used in the Pod.", - MarkdownDescription: "Volumes to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, - - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, - - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, - - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, - - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, - - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, - - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, - - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, - - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, - - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, - - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, - - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: true, - Optional: false, - Computed: false, - }, - - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, - - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, - - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, - - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Required: true, - Optional: false, - Computed: false, - }, - - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", - Required: false, - Optional: true, - Computed: false, - }, - - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: true, - Optional: false, - Computed: false, - }, - - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - Required: false, - Optional: true, - Computed: false, - }, - - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", - Required: true, - Optional: false, - Computed: false, - }, - - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - Required: false, - Optional: true, - Computed: false, - }, - - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_monitor": schema.SingleNestedAttribute{ - Description: "ServiceMonitor defines the ServiceMonior object.", - MarkdownDescription: "ServiceMonitor defines the ServiceMonior object.", - Attributes: map[string]schema.Attribute{ - "interval": schema.StringAttribute{ - Description: "Interval for scraping metrics.", - MarkdownDescription: "Interval for scraping metrics.", - Required: false, - Optional: true, - Computed: false, - }, - - "job_label": schema.StringAttribute{ - Description: "JobLabel to add to the ServiceMonitor object.", - MarkdownDescription: "JobLabel to add to the ServiceMonitor object.", - Required: false, - Optional: true, - Computed: false, - }, - - "prometheus_release": schema.StringAttribute{ - Description: "PrometheusRelease is the release label to add to the ServiceMonitor object.", - MarkdownDescription: "PrometheusRelease is the release label to add to the ServiceMonitor object.", - Required: false, - Optional: true, - Computed: false, - }, - - "scrape_timeout": schema.StringAttribute{ - Description: "ScrapeTimeout defines the timeout for scraping metrics.", - MarkdownDescription: "ScrapeTimeout defines the timeout for scraping metrics.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "monitor": schema.SingleNestedAttribute{ - Description: "Monitor monitors MariaDB server instances.", - MarkdownDescription: "Monitor monitors MariaDB server instances.", - Attributes: map[string]schema.Attribute{ - "cooperative_monitoring": schema.StringAttribute{ - Description: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", - MarkdownDescription: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("majority_of_all", "majority_of_running"), - }, - }, - - "interval": schema.StringAttribute{ - Description: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", - MarkdownDescription: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "module": schema.StringAttribute{ - Description: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", - MarkdownDescription: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the identifier of the monitor. It is defaulted if not provided.", - MarkdownDescription: "Name is the identifier of the monitor. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", - MarkdownDescription: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_disruption_budget": schema.SingleNestedAttribute{ - Description: "PodDisruptionBudget defines the budget for replica availability.", - MarkdownDescription: "PodDisruptionBudget defines the budget for replica availability.", - Attributes: map[string]schema.Attribute{ - "max_unavailable": schema.StringAttribute{ - Description: "MaxUnavailable defines the number of maximum unavailable Pods.", - MarkdownDescription: "MaxUnavailable defines the number of maximum unavailable Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "min_available": schema.StringAttribute{ - Description: "MinAvailable defines the number of minimum available Pods.", - MarkdownDescription: "MinAvailable defines the number of minimum available Pods.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "replicas": schema.Int64Attribute{ - Description: "Replicas indicates the number of desired instances.", - MarkdownDescription: "Replicas indicates the number of desired instances.", - Required: false, - Optional: true, - Computed: false, - }, - - "requeue_interval": schema.StringAttribute{ - Description: "RequeueInterval is used to perform requeue reconciliations.", - MarkdownDescription: "RequeueInterval is used to perform requeue reconciliations.", - Required: false, - Optional: true, - Computed: false, - }, - - "services": schema.ListNestedAttribute{ - Description: "Services define how the traffic is forwarded to the MariaDB servers.", - MarkdownDescription: "Services define how the traffic is forwarded to the MariaDB servers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "listener": schema.SingleNestedAttribute{ - Description: "MaxScaleListener defines how the MaxScale server will listen for connections.", - MarkdownDescription: "MaxScaleListener defines how the MaxScale server will listen for connections.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name is the identifier of the listener. It is defaulted if not provided", - MarkdownDescription: "Name is the identifier of the listener. It is defaulted if not provided", - Required: false, - Optional: true, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", - MarkdownDescription: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port is the network port where the MaxScale server will listen.", - MarkdownDescription: "Port is the network port where the MaxScale server will listen.", - Required: true, - Optional: false, - Computed: false, - }, - - "protocol": schema.StringAttribute{ - Description: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", - MarkdownDescription: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", - Required: false, - Optional: true, - Computed: false, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the identifier of the MaxScale service.", - MarkdownDescription: "Name is the identifier of the MaxScale service.", - Required: true, - Optional: false, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", - MarkdownDescription: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "router": schema.StringAttribute{ - Description: "Router is the type of router to use.", - MarkdownDescription: "Router is the type of router to use.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("readwritesplit", "readconnroute"), - }, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "update_strategy": schema.SingleNestedAttribute{ - Description: "UpdateStrategy defines the update strategy for the StatefulSet object.", - MarkdownDescription: "UpdateStrategy defines the update strategy for the StatefulSet object.", - Attributes: map[string]schema.Attribute{ - "rolling_update": schema.SingleNestedAttribute{ - Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - MarkdownDescription: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - Attributes: map[string]schema.Attribute{ - "max_unavailable": schema.StringAttribute{ - Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", - MarkdownDescription: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", - MarkdownDescription: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - MarkdownDescription: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "max_scale_ref": schema.SingleNestedAttribute{ - Description: "MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB. Providing this field implies delegating high availability tasks such as primary failover to MaxScale.", - MarkdownDescription: "MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB. Providing this field implies delegating high availability tasks such as primary failover to MaxScale.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "metrics": schema.SingleNestedAttribute{ - Description: "Metrics configures metrics and how to scrape them.", - MarkdownDescription: "Metrics configures metrics and how to scrape them.", - Attributes: map[string]schema.Attribute{ - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable Metrics", - MarkdownDescription: "Enabled is a flag to enable Metrics", - Required: false, - Optional: true, - Computed: false, - }, - - "exporter": schema.SingleNestedAttribute{ - Description: "Exporter defines the metrics exporter container.", - MarkdownDescription: "Exporter defines the metrics exporter container.", - Attributes: map[string]schema.Attribute{ - "affinity": schema.SingleNestedAttribute{ - Description: "Affinity to be used in the Pod.", - MarkdownDescription: "Affinity to be used in the Pod.", - Attributes: map[string]schema.Attribute{ - "anti_affinity_enabled": schema.BoolAttribute{ - Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", - MarkdownDescription: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "image_pull_secrets": schema.ListNestedAttribute{ - Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "init_containers": schema.ListNestedAttribute{ - Description: "InitContainers to be used in the Pod.", - MarkdownDescription: "InitContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "node_selector": schema.MapAttribute{ - Description: "NodeSelector to be used in the Pod.", - MarkdownDescription: "NodeSelector to be used in the Pod.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_metadata": schema.SingleNestedAttribute{ - Description: "PodMetadata defines extra metadata for the Pod.", - MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds pod-level security attributes and common container settings.", - MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", - Attributes: map[string]schema.Attribute{ - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group": schema.Int64Attribute{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups_policy": schema.StringAttribute{ - Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "sysctls": schema.ListNestedAttribute{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of a property to set", - MarkdownDescription: "Name of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value of a property to set", - MarkdownDescription: "Value of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port where the exporter will be listening for connections.", - MarkdownDescription: "Port where the exporter will be listening for connections.", - Required: false, - Optional: true, - Computed: false, - }, - - "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName to be used in the Pod.", - MarkdownDescription: "PriorityClassName to be used in the Pod.", - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "sidecar_containers": schema.ListNestedAttribute{ - Description: "SidecarContainers to be used in the Pod.", - MarkdownDescription: "SidecarContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "tolerations": schema.ListNestedAttribute{ - Description: "Tolerations to be used in the Pod.", - MarkdownDescription: "Tolerations to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "effect": schema.StringAttribute{ - Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - Required: false, - Optional: true, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - Required: false, - Optional: true, - Computed: false, - }, - - "toleration_seconds": schema.Int64Attribute{ - Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - Required: false, - Optional: true, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_spread_constraints": schema.ListNestedAttribute{ - Description: "TopologySpreadConstraints to be used in the Pod.", - MarkdownDescription: "TopologySpreadConstraints to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - MarkdownDescription: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "max_skew": schema.Int64Attribute{ - Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - MarkdownDescription: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - - "min_domains": schema.Int64Attribute{ - Description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - MarkdownDescription: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity_policy": schema.StringAttribute{ - Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_taints_policy": schema.StringAttribute{ - Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - MarkdownDescription: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, - - "when_unsatisfiable": schema.StringAttribute{ - Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - MarkdownDescription: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, + "empty_dir": schema.SingleNestedAttribute{ + Description: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + MarkdownDescription: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + Attributes: map[string]schema.Attribute{ + "medium": schema.StringAttribute{ + Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + Required: false, + Optional: true, + Computed: false, + }, - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, + "size_limit": schema.StringAttribute{ + Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -26018,733 +2022,591 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "volumes": schema.ListNestedAttribute{ - Description: "Volumes to be used in the Pod.", - MarkdownDescription: "Volumes to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, - - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, - - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "nfs": schema.SingleNestedAttribute{ + Description: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + MarkdownDescription: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + Attributes: map[string]schema.Attribute{ + "path": schema.StringAttribute{ + Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, + Computed: false, + }, - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "read_only": schema.BoolAttribute{ + Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "server": schema.StringAttribute{ + Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "persistent_volume_claim": schema.SingleNestedAttribute{ + Description: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + MarkdownDescription: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + Attributes: map[string]schema.Attribute{ + "claim_name": schema.StringAttribute{ + Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + Required: true, + Optional: false, + Computed: false, + }, - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, + "read_only": schema.BoolAttribute{ + Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, + "command": schema.ListAttribute{ + Description: "Command to be used in the Container.", + MarkdownDescription: "Command to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "connection": schema.SingleNestedAttribute{ + Description: "Connection defines a template to configure the general Connection object. This Connection provides the initial User access to the initial Database. It will make use of the Service to route network traffic to all Pods.", + MarkdownDescription: "Connection defines a template to configure the general Connection object. This Connection provides the initial User access to the initial Database. It will make use of the Service to route network traffic to all Pods.", + Attributes: map[string]schema.Attribute{ + "health_check": schema.SingleNestedAttribute{ + Description: "HealthCheck to be used in the Connection.", + MarkdownDescription: "HealthCheck to be used in the Connection.", + Attributes: map[string]schema.Attribute{ + "interval": schema.StringAttribute{ + Description: "Interval used to perform health checks.", + MarkdownDescription: "Interval used to perform health checks.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "retry_interval": schema.StringAttribute{ + Description: "RetryInterval is the interval used to perform health check retries.", + MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "params": schema.MapAttribute{ + Description: "Params to be used in the Connection.", + MarkdownDescription: "Params to be used in the Connection.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", + MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "secret_name": schema.StringAttribute{ + Description: "SecretName to be used in the Connection.", + MarkdownDescription: "SecretName to be used in the Connection.", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "secret_template": schema.SingleNestedAttribute{ + Description: "SecretTemplate to be used in the Connection.", + MarkdownDescription: "SecretTemplate to be used in the Connection.", + Attributes: map[string]schema.Attribute{ + "database_key": schema.StringAttribute{ + Description: "DatabaseKey to be used in the Secret.", + MarkdownDescription: "DatabaseKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "format": schema.StringAttribute{ + Description: "Format to be used in the Secret.", + MarkdownDescription: "Format to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "host_key": schema.StringAttribute{ + Description: "HostKey to be used in the Secret.", + MarkdownDescription: "HostKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "Key to be used in the Secret.", + MarkdownDescription: "Key to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Secret object.", + MarkdownDescription: "Metadata to be added to the Secret object.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, + "password_key": schema.StringAttribute{ + Description: "PasswordKey to be used in the Secret.", + MarkdownDescription: "PasswordKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "port_key": schema.StringAttribute{ + Description: "PortKey to be used in the Secret.", + MarkdownDescription: "PortKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "username_key": schema.StringAttribute{ + Description: "UsernameKey to be used in the Secret.", + MarkdownDescription: "UsernameKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, + "service_name": schema.StringAttribute{ + Description: "ServiceName to be used in the Connection.", + MarkdownDescription: "ServiceName to be used in the Connection.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "database": schema.StringAttribute{ + Description: "Database is the name of the initial Database.", + MarkdownDescription: "Database is the name of the initial Database.", + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "env": schema.ListNestedAttribute{ + Description: "Env represents the environment variables to be injected in a container.", + MarkdownDescription: "Env represents the environment variables to be injected in a container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of the environment variable. Must be a C_IDENTIFIER.", + MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", + Required: true, + Optional: false, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, + "value": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, + "value_from": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", + Attributes: map[string]schema.Attribute{ + "config_map_key_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "field_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "api_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, + "field_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "secret_key_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "env_from": schema.ListNestedAttribute{ + Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", + MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "config_map_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, + "prefix": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "secret_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "galera": schema.SingleNestedAttribute{ + Description: "Replication configures high availability via Galera.", + MarkdownDescription: "Replication configures high availability via Galera.", + Attributes: map[string]schema.Attribute{ + "agent": schema.SingleNestedAttribute{ + Description: "GaleraAgent is a sidecar agent that co-operates with mariadb-operator.", + MarkdownDescription: "GaleraAgent is a sidecar agent that co-operates with mariadb-operator.", + Attributes: map[string]schema.Attribute{ + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth to be used by the agent container", + MarkdownDescription: "BasicAuth to be used by the agent container", + Attributes: map[string]schema.Attribute{ + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable BasicAuth", + MarkdownDescription: "Enabled is a flag to enable BasicAuth", + Required: false, + Optional: true, + Computed: false, + }, - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "PasswordSecretKeyRef to be used for basic authentication", + MarkdownDescription: "PasswordSecretKeyRef to be used for basic authentication", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "username": schema.StringAttribute{ + Description: "Username to be used for basic authentication", + MarkdownDescription: "Username to be used for basic authentication", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "command": schema.ListAttribute{ + Description: "Command to be used in the Container.", + MarkdownDescription: "Command to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "env": schema.ListNestedAttribute{ + Description: "Env represents the environment variables to be injected in a container.", + MarkdownDescription: "Env represents the environment variables to be injected in a container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of the environment variable. Must be a C_IDENTIFIER.", + MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", + Required: true, + Optional: false, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "value": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "value_from": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", + Attributes: map[string]schema.Attribute{ + "config_map_key_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, + "field_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "api_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, + "field_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, + "secret_key_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -26756,888 +2618,791 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", + "env_from": schema.ListNestedAttribute{ + Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", + MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "config_map_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, + "prefix": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "secret_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "graceful_shutdown_timeout": schema.StringAttribute{ + Description: "GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.", + MarkdownDescription: "GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.", + Required: false, + Optional: true, + Computed: false, + }, + + "image": schema.StringAttribute{ + Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", + MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", + Required: false, + Optional: true, + Computed: false, + }, + + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), + }, + }, + + "kubernetes_auth": schema.SingleNestedAttribute{ + Description: "KubernetesAuth to be used by the agent container", + MarkdownDescription: "KubernetesAuth to be used by the agent container", + Attributes: map[string]schema.Attribute{ + "auth_delegator_role_name": schema.StringAttribute{ + Description: "AuthDelegatorRoleName is the name of the ClusterRoleBinding that is associated with the 'system:auth-delegator' ClusterRole. It is necessary for creating TokenReview objects in order for the agent to validate the service account token.", + MarkdownDescription: "AuthDelegatorRoleName is the name of the ClusterRoleBinding that is associated with the 'system:auth-delegator' ClusterRole. It is necessary for creating TokenReview objects in order for the agent to validate the service account token.", + Required: false, + Optional: true, + Computed: false, + }, + + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable KubernetesAuth", + MarkdownDescription: "Enabled is a flag to enable KubernetesAuth", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "liveness_probe": schema.SingleNestedAttribute{ + Description: "LivenessProbe to be used in the Container.", + MarkdownDescription: "LivenessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port where the agent will be listening for connections.", + MarkdownDescription: "Port where the agent will be listening for connections.", + Required: false, + Optional: true, + Computed: false, + }, + + "readiness_probe": schema.SingleNestedAttribute{ + Description: "ReadinessProbe to be used in the Container.", + MarkdownDescription: "ReadinessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, + "security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds security configuration that will be applied to a container.", + MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", + Attributes: map[string]schema.Attribute{ + "allow_privilege_escalation": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, + "capabilities": schema.SingleNestedAttribute{ + Description: "Adds and removes POSIX capabilities from running containers.", + MarkdownDescription: "Adds and removes POSIX capabilities from running containers.", + Attributes: map[string]schema.Attribute{ + "add": schema.ListAttribute{ + Description: "Added capabilities", + MarkdownDescription: "Added capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, + "drop": schema.ListAttribute{ + Description: "Removed capabilities", + MarkdownDescription: "Removed capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, - - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, - - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, - - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, + "privileged": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, + "read_only_root_filesystem": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "volume_mounts": schema.ListNestedAttribute{ + Description: "VolumeMounts to be used in the Container.", + MarkdownDescription: "VolumeMounts to be used in the Container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "mount_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, "name": schema.StringAttribute{ - Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "This must match the Name of a Volume.", + MarkdownDescription: "This must match the Name of a Volume.", Required: true, Optional: false, Computed: false, }, - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, + "read_only": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "sub_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, + "available_when_donor": schema.BoolAttribute{ + Description: "AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.", + MarkdownDescription: "AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - Required: false, - Optional: true, - Computed: false, - }, + "config": schema.SingleNestedAttribute{ + Description: "GaleraConfig defines storage options for the Galera configuration files.", + MarkdownDescription: "GaleraConfig defines storage options for the Galera configuration files.", + Attributes: map[string]schema.Attribute{ + "reuse_storage_volume": schema.BoolAttribute{ + Description: "ReuseStorageVolume indicates that storage volume used by MariaDB should be reused to store the Galera configuration files. It defaults to false, which implies that a dedicated volume for the Galera configuration files is provisioned.", + MarkdownDescription: "ReuseStorageVolume indicates that storage volume used by MariaDB should be reused to store the Galera configuration files. It defaults to false, which implies that a dedicated volume for the Galera configuration files is provisioned.", + Required: false, + Optional: true, + Computed: false, + }, + + "volume_claim_template": schema.SingleNestedAttribute{ + Description: "VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.", + MarkdownDescription: "VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.", + Attributes: map[string]schema.Attribute{ + "access_modes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the PVC metadata.", + MarkdownDescription: "Metadata to be added to the PVC metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + MarkdownDescription: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", - Required: true, - Optional: false, - Computed: false, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, - - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "storage_class_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable Galera.", + MarkdownDescription: "Enabled is a flag to enable Galera.", + Required: false, + Optional: true, + Computed: false, + }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, + "galera_lib_path": schema.StringAttribute{ + Description: "GaleraLibPath is a path inside the MariaDB image to the wsrep provider plugin. It is defaulted if not provided. More info: https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-provider.", + MarkdownDescription: "GaleraLibPath is a path inside the MariaDB image to the wsrep provider plugin. It is defaulted if not provided. More info: https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-provider.", + Required: false, + Optional: true, + Computed: false, + }, - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "init_container": schema.SingleNestedAttribute{ + Description: "InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.", + MarkdownDescription: "InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.", + Attributes: map[string]schema.Attribute{ + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "command": schema.ListAttribute{ + Description: "Command to be used in the Container.", + MarkdownDescription: "Command to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "env": schema.ListNestedAttribute{ + Description: "Env represents the environment variables to be injected in a container.", + MarkdownDescription: "Env represents the environment variables to be injected in a container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of the environment variable. Must be a C_IDENTIFIER.", + MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", + Required: true, + Optional: false, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "value": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "value_from": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", + Attributes: map[string]schema.Attribute{ + "config_map_key_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "field_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "api_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, + "field_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, + "secret_key_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -27649,457 +3414,453 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "env_from": schema.ListNestedAttribute{ + Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", + MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "config_map_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Required: true, - Optional: false, - Computed: false, - }, - - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Required: false, - Optional: true, - Computed: false, - }, + "prefix": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", + "secret_ref": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, - - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, }, Required: false, Optional: true, Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Required: false, - Optional: true, - Computed: false, - }, + "image": schema.StringAttribute{ + Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", + MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", + Required: true, + Optional: false, + Computed: false, + }, - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: true, - Optional: false, - Computed: false, - }, + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), + }, + }, - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "liveness_probe": schema.SingleNestedAttribute{ + Description: "LivenessProbe to be used in the Container.", + MarkdownDescription: "LivenessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - Required: false, - Optional: true, - Computed: false, - }, + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", - Required: true, - Optional: false, - Computed: false, - }, + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - Required: false, - Optional: true, - Computed: false, - }, + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, + "readiness_probe": schema.SingleNestedAttribute{ + Description: "ReadinessProbe to be used in the Container.", + MarkdownDescription: "ReadinessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - Required: false, - Optional: true, - Computed: false, - }, + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - Required: false, - Optional: true, - Computed: false, - }, + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - Required: false, - Optional: true, - Computed: false, - }, + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds security configuration that will be applied to a container.", + MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", + Attributes: map[string]schema.Attribute{ + "allow_privilege_escalation": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - Required: false, - Optional: true, - Computed: false, - }, + "capabilities": schema.SingleNestedAttribute{ + Description: "Adds and removes POSIX capabilities from running containers.", + MarkdownDescription: "Adds and removes POSIX capabilities from running containers.", + Attributes: map[string]schema.Attribute{ + "add": schema.ListAttribute{ + Description: "Added capabilities", + MarkdownDescription: "Added capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Required: false, - Optional: true, - Computed: false, - }, + "drop": schema.ListAttribute{ + Description: "Removed capabilities", + MarkdownDescription: "Removed capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "privileged": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Required: false, - Optional: true, - Computed: false, - }, + "read_only_root_filesystem": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "PasswordSecretKeyRef is a reference to the password of the monitoring user used by the exporter. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "PasswordSecretKeyRef is a reference to the password of the monitoring user used by the exporter. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, + "volume_mounts": schema.ListNestedAttribute{ + Description: "VolumeMounts to be used in the Container.", + MarkdownDescription: "VolumeMounts to be used in the Container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "mount_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "This must match the Name of a Volume.", + MarkdownDescription: "This must match the Name of a Volume.", + Required: true, + Optional: false, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "read_only": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, + "sub_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -28107,203 +3868,237 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "service_monitor": schema.SingleNestedAttribute{ - Description: "ServiceMonitor defines the ServiceMonior object.", - MarkdownDescription: "ServiceMonitor defines the ServiceMonior object.", + "init_job": schema.SingleNestedAttribute{ + Description: "InitJob defines a Job that co-operates with mariadb-operator by performing initialization tasks.", + MarkdownDescription: "InitJob defines a Job that co-operates with mariadb-operator by performing initialization tasks.", Attributes: map[string]schema.Attribute{ - "interval": schema.StringAttribute{ - Description: "Interval for scraping metrics.", - MarkdownDescription: "Interval for scraping metrics.", - Required: false, - Optional: true, - Computed: false, - }, - - "job_label": schema.StringAttribute{ - Description: "JobLabel to add to the ServiceMonitor object.", - MarkdownDescription: "JobLabel to add to the ServiceMonitor object.", - Required: false, - Optional: true, - Computed: false, - }, - - "prometheus_release": schema.StringAttribute{ - Description: "PrometheusRelease is the release label to add to the ServiceMonitor object.", - MarkdownDescription: "PrometheusRelease is the release label to add to the ServiceMonitor object.", - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata defines additional metadata for the Galera init Job.", + MarkdownDescription: "Metadata defines additional metadata for the Galera init Job.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "scrape_timeout": schema.StringAttribute{ - Description: "ScrapeTimeout defines the timeout for scraping metrics.", - MarkdownDescription: "ScrapeTimeout defines the timeout for scraping metrics.", - Required: false, - Optional: true, - Computed: false, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "username": schema.StringAttribute{ - Description: "Username is the username of the monitoring user used by the exporter.", - MarkdownDescription: "Username is the username of the monitoring user used by the exporter.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "my_cnf": schema.StringAttribute{ - Description: "MyCnf allows to specify the my.cnf file mounted by Mariadb. Updating this field will trigger an update to the Mariadb resource.", - MarkdownDescription: "MyCnf allows to specify the my.cnf file mounted by Mariadb. Updating this field will trigger an update to the Mariadb resource.", - Required: false, - Optional: true, - Computed: false, - }, - - "my_cnf_config_map_key_ref": schema.SingleNestedAttribute{ - Description: "MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap. If not provided, it will be defaulted with a reference to a ConfigMap containing the MyCnf field. If the referred ConfigMap is labeled with 'k8s.mariadb.com/watch', an update to the Mariadb resource will be triggered when the ConfigMap is updated.", - MarkdownDescription: "MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap. If not provided, it will be defaulted with a reference to a ConfigMap containing the MyCnf field. If the referred ConfigMap is labeled with 'k8s.mariadb.com/watch', an update to the Mariadb resource will be triggered when the ConfigMap is updated.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "node_selector": schema.MapAttribute{ - Description: "NodeSelector to be used in the Pod.", - MarkdownDescription: "NodeSelector to be used in the Pod.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "password_hash_secret_key_ref": schema.SingleNestedAttribute{ - Description: "PasswordHashSecretKeyRef is a reference to the password hash to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password hash.", - MarkdownDescription: "PasswordHashSecretKeyRef is a reference to the password hash to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password hash.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, + "primary": schema.SingleNestedAttribute{ + Description: "Primary is the Galera configuration for the primary node.", + MarkdownDescription: "Primary is the Galera configuration for the primary node.", + Attributes: map[string]schema.Attribute{ + "automatic_failover": schema.BoolAttribute{ + Description: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", + MarkdownDescription: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", + Required: false, + Optional: true, + Computed: false, + }, + + "pod_index": schema.Int64Attribute{ + Description: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", + MarkdownDescription: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + "provider_options": schema.MapAttribute{ + Description: "ProviderOptions is map of Galera configuration parameters. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options.", + MarkdownDescription: "ProviderOptions is map of Galera configuration parameters. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "password_plugin": schema.SingleNestedAttribute{ - Description: "PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.", - MarkdownDescription: "PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.", - Attributes: map[string]schema.Attribute{ - "plugin_arg_secret_key_ref": schema.SingleNestedAttribute{ - Description: "PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin arguments.", - MarkdownDescription: "PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin arguments.", + "recovery": schema.SingleNestedAttribute{ + Description: "GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy. More info: https://galeracluster.com/library/documentation/crash-recovery.html.", + MarkdownDescription: "GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy. More info: https://galeracluster.com/library/documentation/crash-recovery.html.", Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, + "cluster_bootstrap_timeout": schema.StringAttribute{ + Description: "ClusterBootstrapTimeout is the time limit for bootstrapping a cluster. Once this timeout is reached, the Galera recovery state is reset and a new cluster bootstrap will be attempted.", + MarkdownDescription: "ClusterBootstrapTimeout is the time limit for bootstrapping a cluster. Once this timeout is reached, the Galera recovery state is reset and a new cluster bootstrap will be attempted.", + Required: false, + Optional: true, Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "cluster_healthy_timeout": schema.StringAttribute{ + Description: "ClusterHealthyTimeout represents the duration at which a Galera cluster, that consistently failed health checks, is considered unhealthy, and consequently the Galera recovery process will be initiated by the operator.", + MarkdownDescription: "ClusterHealthyTimeout represents the duration at which a Galera cluster, that consistently failed health checks, is considered unhealthy, and consequently the Galera recovery process will be initiated by the operator.", Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + "cluster_monitor_interval": schema.StringAttribute{ + Description: "ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.", + MarkdownDescription: "ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.", Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "plugin_name_secret_key_ref": schema.SingleNestedAttribute{ - Description: "PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin.", - MarkdownDescription: "PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable GaleraRecovery.", + MarkdownDescription: "Enabled is a flag to enable GaleraRecovery.", + Required: false, + Optional: true, Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "force_cluster_bootstrap_in_pod": schema.StringAttribute{ + Description: "ForceClusterBootstrapInPod allows you to manually initiate the bootstrap process in a specific Pod. IMPORTANT: Use this option only in exceptional circumstances. Not selecting the Pod with the highest sequence number may result in data loss. IMPORTANT: Ensure you unset this field after completing the bootstrap to allow the operator to choose the appropriate Pod to bootstrap from in an event of cluster recovery.", + MarkdownDescription: "ForceClusterBootstrapInPod allows you to manually initiate the bootstrap process in a specific Pod. IMPORTANT: Use this option only in exceptional circumstances. Not selecting the Pod with the highest sequence number may result in data loss. IMPORTANT: Ensure you unset this field after completing the bootstrap to allow the operator to choose the appropriate Pod to bootstrap from in an event of cluster recovery.", + Required: false, + Optional: true, + Computed: false, + }, + + "job": schema.SingleNestedAttribute{ + Description: "Job defines a Job that co-operates with mariadb-operator by performing the Galera cluster recovery .", + MarkdownDescription: "Job defines a Job that co-operates with mariadb-operator by performing the Galera cluster recovery .", + Attributes: map[string]schema.Attribute{ + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata defines additional metadata for the Galera recovery Jobs.", + MarkdownDescription: "Metadata defines additional metadata for the Galera recovery Jobs.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "pod_affinity": schema.BoolAttribute{ + Description: "PodAffinity indicates whether the recovery Jobs should run in the same Node as the MariaDB Pods. It defaults to true.", + MarkdownDescription: "PodAffinity indicates whether the recovery Jobs should run in the same Node as the MariaDB Pods. It defaults to true.", + Required: false, + Optional: true, + Computed: false, + }, + + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "min_cluster_size": schema.StringAttribute{ + Description: "MinClusterSize is the minimum number of replicas to consider the cluster healthy. It can be either a number of replicas (1) or a percentage (50%). If Galera consistently reports less replicas than this value for the given 'ClusterHealthyTimeout' interval, a cluster recovery is iniated. It defaults to '1' replica.", + MarkdownDescription: "MinClusterSize is the minimum number of replicas to consider the cluster healthy. It can be either a number of replicas (1) or a percentage (50%). If Galera consistently reports less replicas than this value for the given 'ClusterHealthyTimeout' interval, a cluster recovery is iniated. It defaults to '1' replica.", + Required: false, + Optional: true, + Computed: false, + }, + + "pod_recovery_timeout": schema.StringAttribute{ + Description: "PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.", + MarkdownDescription: "PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.", Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + "pod_sync_timeout": schema.StringAttribute{ + Description: "PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.", + MarkdownDescription: "PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.", Required: false, Optional: true, Computed: false, @@ -28313,46 +4108,24 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "PasswordSecretKeyRef is a reference to a Secret that contains the password to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "PasswordSecretKeyRef is a reference to a Secret that contains the password to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "replica_threads": schema.Int64Attribute{ + Description: "ReplicaThreads is the number of replica threads used to apply Galera write sets in parallel. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_slave_threads.", + MarkdownDescription: "ReplicaThreads is the number of replica threads used to apply Galera write sets in parallel. More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_slave_threads.", Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + "sst": schema.StringAttribute{ + Description: "SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.", + MarkdownDescription: "SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.", Required: false, Optional: true, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("rsync", "mariabackup", "mysqldump"), + }, }, }, Required: false, @@ -28360,24 +4133,37 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "pod_disruption_budget": schema.SingleNestedAttribute{ - Description: "PodDisruptionBudget defines the budget for replica availability.", - MarkdownDescription: "PodDisruptionBudget defines the budget for replica availability.", - Attributes: map[string]schema.Attribute{ - "max_unavailable": schema.StringAttribute{ - Description: "MaxUnavailable defines the number of maximum unavailable Pods.", - MarkdownDescription: "MaxUnavailable defines the number of maximum unavailable Pods.", - Required: false, - Optional: true, - Computed: false, - }, + "image": schema.StringAttribute{ + Description: "Image name to be used by the MariaDB instances. The supported format is ':'. Only MariaDB official images are supported.", + MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'. Only MariaDB official images are supported.", + Required: false, + Optional: true, + Computed: false, + }, - "min_available": schema.StringAttribute{ - Description: "MinAvailable defines the number of minimum available Pods.", - MarkdownDescription: "MinAvailable defines the number of minimum available Pods.", - Required: false, - Optional: true, - Computed: false, + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), + }, + }, + + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -28385,9 +4171,9 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "pod_metadata": schema.SingleNestedAttribute{ - Description: "PodMetadata defines extra metadata for the Pod.", - MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", + "inherit_metadata": schema.SingleNestedAttribute{ + Description: "InheritMetadata defines the metadata to be inherited by children resources.", + MarkdownDescription: "InheritMetadata defines the metadata to be inherited by children resources.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ Description: "Annotations to be added to children resources.", @@ -28412,178 +4198,139 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "pod_security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds pod-level security attributes and common container settings.", - MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", - Attributes: map[string]schema.Attribute{ - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, + "init_containers": schema.ListNestedAttribute{ + Description: "InitContainers to be used in the Pod.", + MarkdownDescription: "InitContainers to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group": schema.Int64Attribute{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, + "command": schema.ListAttribute{ + Description: "Command to be used in the Container.", + MarkdownDescription: "Command to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, + "image": schema.StringAttribute{ + Description: "Image name to be used by the container. The supported format is ':'.", + MarkdownDescription: "Image name to be used by the container. The supported format is ':'.", + Required: true, + Optional: false, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), }, }, - Required: false, - Optional: true, - Computed: false, - }, - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "volume_mounts": schema.ListNestedAttribute{ + Description: "VolumeMounts to be used in the Container.", + MarkdownDescription: "VolumeMounts to be used in the Container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "mount_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "supplemental_groups_policy": schema.StringAttribute{ - Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "This must match the Name of a Volume.", + MarkdownDescription: "This must match the Name of a Volume.", + Required: true, + Optional: false, + Computed: false, + }, - "sysctls": schema.ListNestedAttribute{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of a property to set", - MarkdownDescription: "Name of a property to set", - Required: true, - Optional: false, - Computed: false, + "read_only": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "sub_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "value": schema.StringAttribute{ - Description: "Value of a property to set", - MarkdownDescription: "Value of a property to set", - Required: true, - Optional: false, - Computed: false, - }, + "liveness_probe": schema.SingleNestedAttribute{ + Description: "LivenessProbe to be used in the Container.", + MarkdownDescription: "LivenessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -28591,37 +4338,45 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, Computed: false, }, - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", Required: false, Optional: true, Computed: false, @@ -28631,39 +4386,63 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, + + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, Computed: false, }, - "port": schema.Int64Attribute{ - Description: "Port where the instances will be listening for connections.", - MarkdownDescription: "Port where the instances will be listening for connections.", - Required: false, - Optional: true, - Computed: false, - }, - - "primary_connection": schema.SingleNestedAttribute{ - Description: "PrimaryConnection defines a template to configure the primary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the PrimaryService to route network traffic to the primary Pod.", - MarkdownDescription: "PrimaryConnection defines a template to configure the primary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the PrimaryService to route network traffic to the primary Pod.", + "max_scale": schema.SingleNestedAttribute{ + Description: "MaxScale is the MaxScale specification that defines the MaxScale resource to be used with the current MariaDB. When enabling this field, MaxScaleRef is automatically set.", + MarkdownDescription: "MaxScale is the MaxScale specification that defines the MaxScale resource to be used with the current MariaDB. When enabling this field, MaxScaleRef is automatically set.", Attributes: map[string]schema.Attribute{ - "health_check": schema.SingleNestedAttribute{ - Description: "HealthCheck to be used in the Connection.", - MarkdownDescription: "HealthCheck to be used in the Connection.", + "admin": schema.SingleNestedAttribute{ + Description: "Admin configures the admin REST API and GUI.", + MarkdownDescription: "Admin configures the admin REST API and GUI.", Attributes: map[string]schema.Attribute{ - "interval": schema.StringAttribute{ - Description: "Interval used to perform health checks.", - MarkdownDescription: "Interval used to perform health checks.", + "gui_enabled": schema.BoolAttribute{ + Description: "GuiEnabled indicates whether the admin GUI should be enabled.", + MarkdownDescription: "GuiEnabled indicates whether the admin GUI should be enabled.", Required: false, Optional: true, Computed: false, }, - "retry_interval": schema.StringAttribute{ - Description: "RetryInterval is the interval used to perform health check retries.", - MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", + "port": schema.Int64Attribute{ + Description: "Port where the admin REST API and GUI will be exposed.", + MarkdownDescription: "Port where the admin REST API and GUI will be exposed.", Required: false, Optional: true, Computed: false, @@ -28674,84 +4453,188 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "params": schema.MapAttribute{ - Description: "Params to be used in the Connection.", - MarkdownDescription: "Params to be used in the Connection.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "auth": schema.SingleNestedAttribute{ + Description: "Auth defines the credentials required for MaxScale to connect to MariaDB.", + MarkdownDescription: "Auth defines the credentials required for MaxScale to connect to MariaDB.", + Attributes: map[string]schema.Attribute{ + "admin_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", + MarkdownDescription: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "port": schema.Int64Attribute{ - Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "secret_name": schema.StringAttribute{ - Description: "SecretName to be used in the Connection.", - MarkdownDescription: "SecretName to be used in the Connection.", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_template": schema.SingleNestedAttribute{ - Description: "SecretTemplate to be used in the Connection.", - MarkdownDescription: "SecretTemplate to be used in the Connection.", - Attributes: map[string]schema.Attribute{ - "database_key": schema.StringAttribute{ - Description: "DatabaseKey to be used in the Secret.", - MarkdownDescription: "DatabaseKey to be used in the Secret.", + "admin_username": schema.StringAttribute{ + Description: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", + MarkdownDescription: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", Required: false, Optional: true, Computed: false, }, - "format": schema.StringAttribute{ - Description: "Format to be used in the Secret.", - MarkdownDescription: "Format to be used in the Secret.", + "client_max_connections": schema.Int64Attribute{ + Description: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + Required: false, + Optional: true, + Computed: false, + }, + + "client_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_username": schema.StringAttribute{ + Description: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", + MarkdownDescription: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, + + "delete_default_admin": schema.BoolAttribute{ + Description: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", + MarkdownDescription: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", + Required: false, + Optional: true, + Computed: false, + }, + + "generate": schema.BoolAttribute{ + Description: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", + MarkdownDescription: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", Required: false, Optional: true, Computed: false, }, - "host_key": schema.StringAttribute{ - Description: "HostKey to be used in the Secret.", - MarkdownDescription: "HostKey to be used in the Secret.", + "metrics_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "metrics_username": schema.StringAttribute{ + Description: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", + MarkdownDescription: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", Required: false, Optional: true, Computed: false, }, - "key": schema.StringAttribute{ - Description: "Key to be used in the Secret.", - MarkdownDescription: "Key to be used in the Secret.", + "monitor_max_connections": schema.Int64Attribute{ + Description: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", Required: false, Optional: true, Computed: false, }, - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Secret object.", - MarkdownDescription: "Metadata to be added to the Secret object.", + "monitor_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", Required: false, Optional: true, Computed: false, }, - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -28762,231 +4645,97 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "password_key": schema.StringAttribute{ - Description: "PasswordKey to be used in the Secret.", - MarkdownDescription: "PasswordKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "port_key": schema.StringAttribute{ - Description: "PortKey to be used in the Secret.", - MarkdownDescription: "PortKey to be used in the Secret.", + "monitor_username": schema.StringAttribute{ + Description: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", + MarkdownDescription: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", Required: false, Optional: true, Computed: false, }, - "username_key": schema.StringAttribute{ - Description: "UsernameKey to be used in the Secret.", - MarkdownDescription: "UsernameKey to be used in the Secret.", + "server_max_connections": schema.Int64Attribute{ + Description: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_name": schema.StringAttribute{ - Description: "ServiceName to be used in the Connection.", - MarkdownDescription: "ServiceName to be used in the Connection.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "primary_service": schema.SingleNestedAttribute{ - Description: "PrimaryService defines a template to configure the primary Service object. The network traffic of this Service will be routed to the primary Pod.", - MarkdownDescription: "PrimaryService defines a template to configure the primary Service object. The network traffic of this Service will be routed to the primary Pod.", - Attributes: map[string]schema.Attribute{ - "allocate_load_balancer_node_ports": schema.BoolAttribute{ - Description: "AllocateLoadBalancerNodePorts Service field.", - MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "external_traffic_policy": schema.StringAttribute{ - Description: "ExternalTrafficPolicy Service field.", - MarkdownDescription: "ExternalTrafficPolicy Service field.", - Required: false, - Optional: true, - Computed: false, - }, - "load_balancer_ip": schema.StringAttribute{ - Description: "LoadBalancerIP Service field.", - MarkdownDescription: "LoadBalancerIP Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_source_ranges": schema.ListAttribute{ - Description: "LoadBalancerSourceRanges Service field.", - MarkdownDescription: "LoadBalancerSourceRanges Service field.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "server_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Service metadata.", - MarkdownDescription: "Metadata to be added to the Service metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "session_affinity": schema.StringAttribute{ - Description: "SessionAffinity Service field.", - MarkdownDescription: "SessionAffinity Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName to be used in the Pod.", - MarkdownDescription: "PriorityClassName to be used in the Pod.", - Required: false, - Optional: true, - Computed: false, - }, - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, + "server_username": schema.StringAttribute{ + Description: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", + MarkdownDescription: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", + "sync_max_connections": schema.Int64Attribute{ + Description: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, + "sync_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "SyncPasswordSecretKeyRef is Secret key reference to the password used by MaxScale config to connect to MariaDB server. It is defaulted when HA is enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "SyncPasswordSecretKeyRef is Secret key reference to the password used by MaxScale config to connect to MariaDB server. It is defaulted when HA is enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -28994,25 +4743,9 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", + "sync_username": schema.StringAttribute{ + Description: "MonitoSyncUsernamerUsername is the user used by MaxScale config sync to connect to MariaDB server. It is defaulted when HA is enabled.", + MarkdownDescription: "MonitoSyncUsernamerUsername is the user used by MaxScale config sync to connect to MariaDB server. It is defaulted when HA is enabled.", Required: false, Optional: true, Computed: false, @@ -29023,122 +4756,184 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", + "config": schema.SingleNestedAttribute{ + Description: "Config defines the MaxScale configuration.", + MarkdownDescription: "Config defines the MaxScale configuration.", Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", + "params": schema.MapAttribute{ + Description: "Params is a key value pair of parameters to be used in the MaxScale static configuration file. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#global-settings.", + MarkdownDescription: "Params is a key value pair of parameters to be used in the MaxScale static configuration file. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#global-settings.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, + "sync": schema.SingleNestedAttribute{ + Description: "Sync defines how to replicate configuration across MaxScale replicas. It is defaulted when HA is enabled.", + MarkdownDescription: "Sync defines how to replicate configuration across MaxScale replicas. It is defaulted when HA is enabled.", + Attributes: map[string]schema.Attribute{ + "database": schema.StringAttribute{ + Description: "Database is the MariaDB logical database where the 'maxscale_config' table will be created in order to persist and synchronize config changes. If not provided, it defaults to 'mysql'.", + MarkdownDescription: "Database is the MariaDB logical database where the 'maxscale_config' table will be created in order to persist and synchronize config changes. If not provided, it defaults to 'mysql'.", + Required: false, + Optional: true, + Computed: false, + }, + + "interval": schema.StringAttribute{ + Description: "Interval defines the config synchronization interval. It is defaulted if not provided.", + MarkdownDescription: "Interval defines the config synchronization interval. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, + + "timeout": schema.StringAttribute{ + Description: "Interval defines the config synchronization timeout. It is defaulted if not provided.", + MarkdownDescription: "Interval defines the config synchronization timeout. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, + "volume_claim_template": schema.SingleNestedAttribute{ + Description: "VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.", + MarkdownDescription: "VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.", + Attributes: map[string]schema.Attribute{ + "access_modes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the PVC metadata.", + MarkdownDescription: "Metadata to be added to the PVC metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "replicas": schema.Int64Attribute{ - Description: "Replicas indicates the number of desired instances.", - MarkdownDescription: "Replicas indicates the number of desired instances.", - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "replicas_allow_even_number": schema.BoolAttribute{ - Description: "disables the validation check for an odd number of replicas.", - MarkdownDescription: "disables the validation check for an odd number of replicas.", - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + MarkdownDescription: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "replication": schema.SingleNestedAttribute{ - Description: "Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA.", - MarkdownDescription: "Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA.", - Attributes: map[string]schema.Attribute{ - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable Replication.", - MarkdownDescription: "Enabled is a flag to enable Replication.", - Required: false, - Optional: true, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "primary": schema.SingleNestedAttribute{ - Description: "Primary is the replication configuration for the primary node.", - MarkdownDescription: "Primary is the replication configuration for the primary node.", - Attributes: map[string]schema.Attribute{ - "automatic_failover": schema.BoolAttribute{ - Description: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", - MarkdownDescription: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", - Required: false, - Optional: true, - Computed: false, - }, + "selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "pod_index": schema.Int64Attribute{ - Description: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", - MarkdownDescription: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", - Required: false, - Optional: true, - Computed: false, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, + + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "storage_class_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -29146,245 +4941,155 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "probes_enabled": schema.BoolAttribute{ - Description: "ProbesEnabled indicates to use replication specific liveness and readiness probes. This probes check that the primary can receive queries and that the replica has the replication thread running.", - MarkdownDescription: "ProbesEnabled indicates to use replication specific liveness and readiness probes. This probes check that the primary can receive queries and that the replica has the replication thread running.", - Required: false, - Optional: true, - Computed: false, - }, - - "replica": schema.SingleNestedAttribute{ - Description: "ReplicaReplication is the replication configuration for the replica nodes.", - MarkdownDescription: "ReplicaReplication is the replication configuration for the replica nodes.", + "connection": schema.SingleNestedAttribute{ + Description: "Connection provides a template to define the Connection for MaxScale.", + MarkdownDescription: "Connection provides a template to define the Connection for MaxScale.", Attributes: map[string]schema.Attribute{ - "connection_retries": schema.Int64Attribute{ - Description: "ConnectionRetries to be used when the replica connects to the primary.", - MarkdownDescription: "ConnectionRetries to be used when the replica connects to the primary.", + "health_check": schema.SingleNestedAttribute{ + Description: "HealthCheck to be used in the Connection.", + MarkdownDescription: "HealthCheck to be used in the Connection.", + Attributes: map[string]schema.Attribute{ + "interval": schema.StringAttribute{ + Description: "Interval used to perform health checks.", + MarkdownDescription: "Interval used to perform health checks.", + Required: false, + Optional: true, + Computed: false, + }, + + "retry_interval": schema.StringAttribute{ + Description: "RetryInterval is the interval used to perform health check retries.", + MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "params": schema.MapAttribute{ + Description: "Params to be used in the Connection.", + MarkdownDescription: "Params to be used in the Connection.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "connection_timeout": schema.StringAttribute{ - Description: "ConnectionTimeout to be used when the replica connects to the primary.", - MarkdownDescription: "ConnectionTimeout to be used when the replica connects to the primary.", + "port": schema.Int64Attribute{ + Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", + MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", Required: false, Optional: true, Computed: false, }, - "gtid": schema.StringAttribute{ - Description: "Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.", - MarkdownDescription: "Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.", + "secret_name": schema.StringAttribute{ + Description: "SecretName to be used in the Connection.", + MarkdownDescription: "SecretName to be used in the Connection.", Required: false, Optional: true, Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("CurrentPos", "SlavePos"), - }, }, - "repl_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.", - MarkdownDescription: "ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.", + "secret_template": schema.SingleNestedAttribute{ + Description: "SecretTemplate to be used in the Connection.", + MarkdownDescription: "SecretTemplate to be used in the Connection.", Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + "database_key": schema.StringAttribute{ + Description: "DatabaseKey to be used in the Secret.", + MarkdownDescription: "DatabaseKey to be used in the Secret.", Required: false, Optional: true, Computed: false, }, - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, + "format": schema.StringAttribute{ + Description: "Format to be used in the Secret.", + MarkdownDescription: "Format to be used in the Secret.", + Required: false, + Optional: true, Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "host_key": schema.StringAttribute{ + Description: "HostKey to be used in the Secret.", + MarkdownDescription: "HostKey to be used in the Secret.", Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + "key": schema.StringAttribute{ + Description: "Key to be used in the Secret.", + MarkdownDescription: "Key to be used in the Secret.", Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "sync_timeout": schema.StringAttribute{ - Description: "SyncTimeout defines the timeout for a replica to be synced with the primary when performing a primary switchover. If the timeout is reached, the replica GTID will be reset and the switchover will continue.", - MarkdownDescription: "SyncTimeout defines the timeout for a replica to be synced with the primary when performing a primary switchover. If the timeout is reached, the replica GTID will be reset and the switchover will continue.", - Required: false, - Optional: true, - Computed: false, - }, - - "wait_point": schema.StringAttribute{ - Description: "WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.", - MarkdownDescription: "WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("AfterSync", "AfterCommit"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "sync_binlog": schema.BoolAttribute{ - Description: "SyncBinlog indicates whether the binary log should be synchronized to the disk after every event. It trades off performance for consistency. See: https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#sync_binlog.", - MarkdownDescription: "SyncBinlog indicates whether the binary log should be synchronized to the disk after every event. It trades off performance for consistency. See: https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#sync_binlog.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "root_empty_password": schema.BoolAttribute{ - Description: "RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments.", - MarkdownDescription: "RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments.", - Required: false, - Optional: true, - Computed: false, - }, - "root_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "RootPasswordSecretKeyRef is a reference to a Secret key containing the root password.", - MarkdownDescription: "RootPasswordSecretKeyRef is a reference to a Secret key containing the root password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Secret object.", + MarkdownDescription: "Metadata to be added to the Secret object.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "password_key": schema.StringAttribute{ + Description: "PasswordKey to be used in the Secret.", + MarkdownDescription: "PasswordKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "port_key": schema.StringAttribute{ + Description: "PortKey to be used in the Secret.", + MarkdownDescription: "PortKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "secondary_connection": schema.SingleNestedAttribute{ - Description: "SecondaryConnection defines a template to configure the secondary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the SecondaryService to route network traffic to the secondary Pods.", - MarkdownDescription: "SecondaryConnection defines a template to configure the secondary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the SecondaryService to route network traffic to the secondary Pods.", - Attributes: map[string]schema.Attribute{ - "health_check": schema.SingleNestedAttribute{ - Description: "HealthCheck to be used in the Connection.", - MarkdownDescription: "HealthCheck to be used in the Connection.", - Attributes: map[string]schema.Attribute{ - "interval": schema.StringAttribute{ - Description: "Interval used to perform health checks.", - MarkdownDescription: "Interval used to perform health checks.", - Required: false, - Optional: true, - Computed: false, + "username_key": schema.StringAttribute{ + Description: "UsernameKey to be used in the Secret.", + MarkdownDescription: "UsernameKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "retry_interval": schema.StringAttribute{ - Description: "RetryInterval is the interval used to perform health check retries.", - MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", + "service_name": schema.StringAttribute{ + Description: "ServiceName to be used in the Connection.", + MarkdownDescription: "ServiceName to be used in the Connection.", Required: false, Optional: true, Computed: false, @@ -29395,70 +5100,54 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "params": schema.MapAttribute{ - Description: "Params to be used in the Connection.", - MarkdownDescription: "Params to be used in the Connection.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "SecretName to be used in the Connection.", - MarkdownDescription: "SecretName to be used in the Connection.", + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable a MaxScale instance to be used with the current MariaDB.", + MarkdownDescription: "Enabled is a flag to enable a MaxScale instance to be used with the current MariaDB.", Required: false, Optional: true, Computed: false, }, - "secret_template": schema.SingleNestedAttribute{ - Description: "SecretTemplate to be used in the Connection.", - MarkdownDescription: "SecretTemplate to be used in the Connection.", + "gui_kubernetes_service": schema.SingleNestedAttribute{ + Description: "GuiKubernetesService define a template for a Kubernetes Service object to connect to MaxScale's GUI.", + MarkdownDescription: "GuiKubernetesService define a template for a Kubernetes Service object to connect to MaxScale's GUI.", Attributes: map[string]schema.Attribute{ - "database_key": schema.StringAttribute{ - Description: "DatabaseKey to be used in the Secret.", - MarkdownDescription: "DatabaseKey to be used in the Secret.", + "allocate_load_balancer_node_ports": schema.BoolAttribute{ + Description: "AllocateLoadBalancerNodePorts Service field.", + MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", Required: false, Optional: true, Computed: false, }, - "format": schema.StringAttribute{ - Description: "Format to be used in the Secret.", - MarkdownDescription: "Format to be used in the Secret.", + "external_traffic_policy": schema.StringAttribute{ + Description: "ExternalTrafficPolicy Service field.", + MarkdownDescription: "ExternalTrafficPolicy Service field.", Required: false, Optional: true, Computed: false, }, - "host_key": schema.StringAttribute{ - Description: "HostKey to be used in the Secret.", - MarkdownDescription: "HostKey to be used in the Secret.", + "load_balancer_ip": schema.StringAttribute{ + Description: "LoadBalancerIP Service field.", + MarkdownDescription: "LoadBalancerIP Service field.", Required: false, Optional: true, Computed: false, }, - "key": schema.StringAttribute{ - Description: "Key to be used in the Secret.", - MarkdownDescription: "Key to be used in the Secret.", + "load_balancer_source_ranges": schema.ListAttribute{ + Description: "LoadBalancerSourceRanges Service field.", + MarkdownDescription: "LoadBalancerSourceRanges Service field.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Secret object.", - MarkdownDescription: "Metadata to be added to the Secret object.", + Description: "Metadata to be added to the Service metadata.", + MarkdownDescription: "Metadata to be added to the Service metadata.", Attributes: map[string]schema.Attribute{ "annotations": schema.MapAttribute{ Description: "Annotations to be added to children resources.", @@ -29478,198 +5167,28 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, }, - Required: false, - Optional: true, - Computed: false, - }, - - "password_key": schema.StringAttribute{ - Description: "PasswordKey to be used in the Secret.", - MarkdownDescription: "PasswordKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "port_key": schema.StringAttribute{ - Description: "PortKey to be used in the Secret.", - MarkdownDescription: "PortKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - - "username_key": schema.StringAttribute{ - Description: "UsernameKey to be used in the Secret.", - MarkdownDescription: "UsernameKey to be used in the Secret.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_name": schema.StringAttribute{ - Description: "ServiceName to be used in the Connection.", - MarkdownDescription: "ServiceName to be used in the Connection.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secondary_service": schema.SingleNestedAttribute{ - Description: "SecondaryService defines a template to configure the secondary Service object. The network traffic of this Service will be routed to the secondary Pods.", - MarkdownDescription: "SecondaryService defines a template to configure the secondary Service object. The network traffic of this Service will be routed to the secondary Pods.", - Attributes: map[string]schema.Attribute{ - "allocate_load_balancer_node_ports": schema.BoolAttribute{ - Description: "AllocateLoadBalancerNodePorts Service field.", - MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "external_traffic_policy": schema.StringAttribute{ - Description: "ExternalTrafficPolicy Service field.", - MarkdownDescription: "ExternalTrafficPolicy Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_ip": schema.StringAttribute{ - Description: "LoadBalancerIP Service field.", - MarkdownDescription: "LoadBalancerIP Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_source_ranges": schema.ListAttribute{ - Description: "LoadBalancerSourceRanges Service field.", - MarkdownDescription: "LoadBalancerSourceRanges Service field.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Service metadata.", - MarkdownDescription: "Metadata to be added to the Service metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "session_affinity": schema.StringAttribute{ - Description: "SessionAffinity Service field.", - MarkdownDescription: "SessionAffinity Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, + "session_affinity": schema.StringAttribute{ + Description: "SessionAffinity Service field.", + MarkdownDescription: "SessionAffinity Service field.", Required: false, Optional: true, Computed: false, }, - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, + "type": schema.StringAttribute{ + Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", Required: false, Optional: true, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), + }, }, }, Required: false, @@ -29677,113 +5196,106 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "image": schema.StringAttribute{ + Description: "Image name to be used by the MaxScale instances. The supported format is ':'. Only MariaDB official images are supported.", + MarkdownDescription: "Image name to be used by the MaxScale instances. The supported format is ':'. Only MariaDB official images are supported.", Required: false, Optional: true, Computed: false, }, - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", Required: false, Optional: true, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), + }, }, - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + "kubernetes_service": schema.SingleNestedAttribute{ + Description: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", + MarkdownDescription: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", + "allocate_load_balancer_node_ports": schema.BoolAttribute{ + Description: "AllocateLoadBalancerNodePorts Service field.", + MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", Required: false, Optional: true, Computed: false, }, - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", + "external_traffic_policy": schema.StringAttribute{ + Description: "ExternalTrafficPolicy Service field.", + MarkdownDescription: "ExternalTrafficPolicy Service field.", Required: false, Optional: true, Computed: false, }, - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", + "load_balancer_ip": schema.StringAttribute{ + Description: "LoadBalancerIP Service field.", + MarkdownDescription: "LoadBalancerIP Service field.", Required: false, Optional: true, Computed: false, }, - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", + "load_balancer_source_ranges": schema.ListAttribute{ + Description: "LoadBalancerSourceRanges Service field.", + MarkdownDescription: "LoadBalancerSourceRanges Service field.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Service metadata.", + MarkdownDescription: "Metadata to be added to the Service metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "session_affinity": schema.StringAttribute{ + Description: "SessionAffinity Service field.", + MarkdownDescription: "SessionAffinity Service field.", Required: false, Optional: true, Computed: false, }, "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, + Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + Required: false, + Optional: true, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), + }, }, }, Required: false, @@ -29791,219 +5303,385 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + "metrics": schema.SingleNestedAttribute{ + Description: "Metrics configures metrics and how to scrape them.", + MarkdownDescription: "Metrics configures metrics and how to scrape them.", Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable Metrics", + MarkdownDescription: "Enabled is a flag to enable Metrics", Required: false, Optional: true, Computed: false, }, - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, + "exporter": schema.SingleNestedAttribute{ + Description: "Exporter defines the metrics exporter container.", + MarkdownDescription: "Exporter defines the metrics exporter container.", + Attributes: map[string]schema.Attribute{ + "affinity": schema.SingleNestedAttribute{ + Description: "Affinity to be used in the Pod.", + MarkdownDescription: "Affinity to be used in the Pod.", + Attributes: map[string]schema.Attribute{ + "anti_affinity_enabled": schema.BoolAttribute{ + Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + Attributes: map[string]schema.Attribute{ + "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "service": schema.SingleNestedAttribute{ - Description: "Service defines a template to configure the general Service object. The network traffic of this Service will be routed to all Pods.", - MarkdownDescription: "Service defines a template to configure the general Service object. The network traffic of this Service will be routed to all Pods.", - Attributes: map[string]schema.Attribute{ - "allocate_load_balancer_node_ports": schema.BoolAttribute{ - Description: "AllocateLoadBalancerNodePorts Service field.", - MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "external_traffic_policy": schema.StringAttribute{ - Description: "ExternalTrafficPolicy Service field.", - MarkdownDescription: "ExternalTrafficPolicy Service field.", - Required: false, - Optional: true, - Computed: false, - }, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "load_balancer_ip": schema.StringAttribute{ - Description: "LoadBalancerIP Service field.", - MarkdownDescription: "LoadBalancerIP Service field.", - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "load_balancer_source_ranges": schema.ListAttribute{ - Description: "LoadBalancerSourceRanges Service field.", - MarkdownDescription: "LoadBalancerSourceRanges Service field.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Service metadata.", - MarkdownDescription: "Metadata to be added to the Service metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "weight": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "session_affinity": schema.StringAttribute{ - Description: "SessionAffinity Service field.", - MarkdownDescription: "SessionAffinity Service field.", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "sidecar_containers": schema.ListNestedAttribute{ - Description: "SidecarContainers to be used in the Pod.", - MarkdownDescription: "SidecarContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "image": schema.StringAttribute{ + Description: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", + MarkdownDescription: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", + Required: false, + Optional: true, + Computed: false, + }, - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), + }, + }, + + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", + "node_selector": schema.MapAttribute{ + Description: "NodeSelector to be used in the Pod.", + MarkdownDescription: "NodeSelector to be used in the Pod.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata defines extra metadata for the Pod.", + MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "pod_security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", Required: true, Optional: false, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "fs_group": schema.Int64Attribute{ + Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + + "fs_group_change_policy": schema.StringAttribute{ + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_group": schema.Int64Attribute{ + Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_non_root": schema.BoolAttribute{ + Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user": schema.Int64Attribute{ + Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + + "se_linux_options": schema.SingleNestedAttribute{ + Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "level": schema.StringAttribute{ + Description: "Level is SELinux level label that applies to the container.", + MarkdownDescription: "Level is SELinux level label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, + + "role": schema.StringAttribute{ + Description: "Role is a SELinux role label that applies to the container.", + MarkdownDescription: "Role is a SELinux role label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": schema.StringAttribute{ + Description: "Type is a SELinux type label that applies to the container.", + MarkdownDescription: "Type is a SELinux type label that applies to the container.", Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + "user": schema.StringAttribute{ + Description: "User is a SELinux user label that applies to the container.", + MarkdownDescription: "User is a SELinux user label that applies to the container.", Required: false, Optional: true, Computed: false, @@ -30014,21 +5692,21 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", Required: false, Optional: true, Computed: false, }, - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", + "type": schema.StringAttribute{ + Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", Required: true, Optional: false, Computed: false, @@ -30039,32 +5717,43 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, + "supplemental_groups": schema.ListAttribute{ + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, + "sysctls": schema.ListNestedAttribute{ + Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of a property to set", + MarkdownDescription: "Name of a property to set", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value of a property to set", + MarkdownDescription: "Value of a property to set", + Required: true, + Optional: false, + Computed: false, + }, }, }, Required: false, @@ -30072,29 +5761,37 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", + "windows_options": schema.SingleNestedAttribute{ + Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, + "gmsa_credential_spec": schema.StringAttribute{ + Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + Required: false, + Optional: true, + Computed: false, + }, + + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + Required: false, + Optional: true, Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "host_process": schema.BoolAttribute{ + Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + "run_as_user_name": schema.StringAttribute{ + Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", Required: false, Optional: true, Computed: false, @@ -30109,33 +5806,40 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", + "port": schema.Int64Attribute{ + Description: "Port where the exporter will be listening for connections.", + MarkdownDescription: "Port where the exporter will be listening for connections.", + Required: false, + Optional: true, + Computed: false, + }, + + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName to be used in the Pod.", + MarkdownDescription: "PriorityClassName to be used in the Pod.", + Required: false, + Optional: true, + Computed: false, + }, + + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, @@ -30146,917 +5850,876 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", + "tolerations": schema.ListNestedAttribute{ + Description: "Tolerations to be used in the Pod.", + MarkdownDescription: "Tolerations to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "service_monitor": schema.SingleNestedAttribute{ + Description: "ServiceMonitor defines the ServiceMonior object.", + MarkdownDescription: "ServiceMonitor defines the ServiceMonior object.", + Attributes: map[string]schema.Attribute{ + "interval": schema.StringAttribute{ + Description: "Interval for scraping metrics.", + MarkdownDescription: "Interval for scraping metrics.", Required: false, Optional: true, Computed: false, }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "job_label": schema.StringAttribute{ + Description: "JobLabel to add to the ServiceMonitor object.", + MarkdownDescription: "JobLabel to add to the ServiceMonitor object.", + Required: false, + Optional: true, + Computed: false, }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "prometheus_release": schema.StringAttribute{ + Description: "PrometheusRelease is the release label to add to the ServiceMonitor object.", + MarkdownDescription: "PrometheusRelease is the release label to add to the ServiceMonitor object.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, + "scrape_timeout": schema.StringAttribute{ + Description: "ScrapeTimeout defines the timeout for scraping metrics.", + MarkdownDescription: "ScrapeTimeout defines the timeout for scraping metrics.", + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "monitor": schema.SingleNestedAttribute{ + Description: "Monitor monitors MariaDB server instances.", + MarkdownDescription: "Monitor monitors MariaDB server instances.", + Attributes: map[string]schema.Attribute{ + "cooperative_monitoring": schema.StringAttribute{ + Description: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", + MarkdownDescription: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("majority_of_all", "majority_of_running"), }, + }, - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, + "interval": schema.StringAttribute{ + Description: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", + MarkdownDescription: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, + "module": schema.StringAttribute{ + Description: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", + MarkdownDescription: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", + Required: false, + Optional: true, + Computed: false, + }, - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "Name is the identifier of the monitor. It is defaulted if not provided.", + MarkdownDescription: "Name is the identifier of the monitor. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, + "params": schema.MapAttribute{ + Description: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", + MarkdownDescription: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "pod_disruption_budget": schema.SingleNestedAttribute{ + Description: "PodDisruptionBudget defines the budget for replica availability.", + MarkdownDescription: "PodDisruptionBudget defines the budget for replica availability.", + Attributes: map[string]schema.Attribute{ + "max_unavailable": schema.StringAttribute{ + Description: "MaxUnavailable defines the number of maximum unavailable Pods.", + MarkdownDescription: "MaxUnavailable defines the number of maximum unavailable Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, + "min_available": schema.StringAttribute{ + Description: "MinAvailable defines the number of minimum available Pods.", + MarkdownDescription: "MinAvailable defines the number of minimum available Pods.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, + "replicas": schema.Int64Attribute{ + Description: "Replicas indicates the number of desired instances.", + MarkdownDescription: "Replicas indicates the number of desired instances.", + Required: false, + Optional: true, + Computed: false, + }, - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, + "requeue_interval": schema.StringAttribute{ + Description: "RequeueInterval is used to perform requeue reconciliations.", + MarkdownDescription: "RequeueInterval is used to perform requeue reconciliations.", + Required: false, + Optional: true, + Computed: false, + }, - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", + "services": schema.ListNestedAttribute{ + Description: "Services define how the traffic is forwarded to the MariaDB servers.", + MarkdownDescription: "Services define how the traffic is forwarded to the MariaDB servers.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "listener": schema.SingleNestedAttribute{ + Description: "MaxScaleListener defines how the MaxScale server will listen for connections.", + MarkdownDescription: "MaxScaleListener defines how the MaxScale server will listen for connections.", Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", + "name": schema.StringAttribute{ + Description: "Name is the identifier of the listener. It is defaulted if not provided", + MarkdownDescription: "Name is the identifier of the listener. It is defaulted if not provided", Required: false, Optional: true, Computed: false, }, - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", + "params": schema.MapAttribute{ + Description: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", + MarkdownDescription: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", + Description: "Port is the network port where the MaxScale server will listen.", + MarkdownDescription: "Port is the network port where the MaxScale server will listen.", Required: true, Optional: false, Computed: false, }, - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", + "protocol": schema.StringAttribute{ + Description: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", + MarkdownDescription: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", Required: false, Optional: true, Computed: false, }, - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", Required: false, Optional: true, Computed: false, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, + "name": schema.StringAttribute{ + Description: "Name is the identifier of the MaxScale service.", + MarkdownDescription: "Name is the identifier of the MaxScale service.", + Required: true, + Optional: false, Computed: false, }, - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "params": schema.MapAttribute{ + Description: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", + MarkdownDescription: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, + "router": schema.StringAttribute{ + Description: "Router is the type of router to use.", + MarkdownDescription: "Router is the type of router to use.", + Required: true, + Optional: false, Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, + Validators: []validator.String{ + stringvalidator.OneOf("readwritesplit", "readconnroute"), }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, }, - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", Required: false, Optional: true, Computed: false, }, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, + "update_strategy": schema.SingleNestedAttribute{ + Description: "UpdateStrategy defines the update strategy for the StatefulSet object.", + MarkdownDescription: "UpdateStrategy defines the update strategy for the StatefulSet object.", + Attributes: map[string]schema.Attribute{ + "rolling_update": schema.SingleNestedAttribute{ + Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", + MarkdownDescription: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", + Attributes: map[string]schema.Attribute{ + "max_unavailable": schema.StringAttribute{ + Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", + MarkdownDescription: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "partition": schema.Int64Attribute{ + Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", + MarkdownDescription: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + MarkdownDescription: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "max_scale_ref": schema.SingleNestedAttribute{ + Description: "MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB. Providing this field implies delegating high availability tasks such as primary failover to MaxScale.", + MarkdownDescription: "MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB. Providing this field implies delegating high availability tasks such as primary failover to MaxScale.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, + "metrics": schema.SingleNestedAttribute{ + Description: "Metrics configures metrics and how to scrape them.", + MarkdownDescription: "Metrics configures metrics and how to scrape them.", + Attributes: map[string]schema.Attribute{ + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable Metrics", + MarkdownDescription: "Enabled is a flag to enable Metrics", + Required: false, + Optional: true, + Computed: false, + }, - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, + "exporter": schema.SingleNestedAttribute{ + Description: "Exporter defines the metrics exporter container.", + MarkdownDescription: "Exporter defines the metrics exporter container.", + Attributes: map[string]schema.Attribute{ + "affinity": schema.SingleNestedAttribute{ + Description: "Affinity to be used in the Pod.", + MarkdownDescription: "Affinity to be used in the Pod.", + Attributes: map[string]schema.Attribute{ + "anti_affinity_enabled": schema.BoolAttribute{ + Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + Attributes: map[string]schema.Attribute{ + "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, + "weight": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, + "image": schema.StringAttribute{ + Description: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", + MarkdownDescription: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", + Required: false, + Optional: true, + Computed: false, + }, - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), + }, + }, - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ + "node_selector": schema.MapAttribute{ + Description: "NodeSelector to be used in the Pod.", + MarkdownDescription: "NodeSelector to be used in the Pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata defines extra metadata for the Pod.", + MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, Computed: false, }, - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, + "pod_security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", + Attributes: map[string]schema.Attribute{ + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", + "fs_group": schema.Int64Attribute{ + Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", Required: false, Optional: true, Computed: false, }, - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + "fs_group_change_policy": schema.StringAttribute{ + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", Required: false, Optional: true, Computed: false, }, - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", + "run_as_group": schema.Int64Attribute{ + Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", Required: false, Optional: true, Computed: false, }, - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", + "run_as_non_root": schema.BoolAttribute{ + Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", Required: false, Optional: true, Computed: false, }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage": schema.SingleNestedAttribute{ - Description: "Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.", - MarkdownDescription: "Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.", - Attributes: map[string]schema.Attribute{ - "ephemeral": schema.BoolAttribute{ - Description: "Ephemeral indicates whether to use ephemeral storage in the PVCs. It is only compatible with non HA MariaDBs.", - MarkdownDescription: "Ephemeral indicates whether to use ephemeral storage in the PVCs. It is only compatible with non HA MariaDBs.", - Required: false, - Optional: true, - Computed: false, - }, - "resize_in_use_volumes": schema.BoolAttribute{ - Description: "ResizeInUseVolumes indicates whether the PVCs can be resized. The 'StorageClassName' used should have 'allowVolumeExpansion' set to 'true' to allow resizing. It defaults to true.", - MarkdownDescription: "ResizeInUseVolumes indicates whether the PVCs can be resized. The 'StorageClassName' used should have 'allowVolumeExpansion' set to 'true' to allow resizing. It defaults to true.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "size": schema.StringAttribute{ - Description: "Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It superseeds the storage size specified in 'VolumeClaimTemplate'.", - MarkdownDescription: "Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It superseeds the storage size specified in 'VolumeClaimTemplate'.", - Required: false, - Optional: true, - Computed: false, - }, + "se_linux_options": schema.SingleNestedAttribute{ + Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "level": schema.StringAttribute{ + Description: "Level is SELinux level label that applies to the container.", + MarkdownDescription: "Level is SELinux level label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "storage_class_name": schema.StringAttribute{ - Description: "StorageClassName to be used to provision the PVCS. It superseeds the 'StorageClassName' specified in 'VolumeClaimTemplate'. If not provided, the default 'StorageClass' configured in the cluster is used.", - MarkdownDescription: "StorageClassName to be used to provision the PVCS. It superseeds the 'StorageClassName' specified in 'VolumeClaimTemplate'. If not provided, the default 'StorageClass' configured in the cluster is used.", - Required: false, - Optional: true, - Computed: false, - }, + "role": schema.StringAttribute{ + Description: "Role is a SELinux role label that applies to the container.", + MarkdownDescription: "Role is a SELinux role label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "VolumeClaimTemplate provides a template to define the PVCs.", - MarkdownDescription: "VolumeClaimTemplate provides a template to define the PVCs.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type is a SELinux type label that applies to the container.", + MarkdownDescription: "Type is a SELinux type label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, + "user": schema.StringAttribute{ + Description: "User is a SELinux user label that applies to the container.", + MarkdownDescription: "User is a SELinux user label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, + "supplemental_groups": schema.ListAttribute{ + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + ElementType: types.StringType, + Required: false, + Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", Required: false, Optional: true, Computed: false, }, - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "sysctls": schema.ListNestedAttribute{ + Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of a property to set", + MarkdownDescription: "Name of a property to set", + Required: true, + Optional: false, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, + "value": schema.StringAttribute{ + Description: "Value of a property to set", + MarkdownDescription: "Value of a property to set", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, }, - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, + "windows_options": schema.SingleNestedAttribute{ + Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + Attributes: map[string]schema.Attribute{ + "gmsa_credential_spec": schema.StringAttribute{ + Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + Required: false, + Optional: true, + Computed: false, + }, + + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + Required: false, + Optional: true, + Computed: false, + }, + + "host_process": schema.BoolAttribute{ + Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user_name": schema.StringAttribute{ + Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -31064,40 +6727,29 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the PVC metadata.", - MarkdownDescription: "Metadata to be added to the PVC metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port where the exporter will be listening for connections.", + MarkdownDescription: "Port where the exporter will be listening for connections.", + Required: false, + Optional: true, + Computed: false, + }, - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName to be used in the Pod.", + MarkdownDescription: "PriorityClassName to be used in the Pod.", + Required: false, + Optional: true, + Computed: false, }, "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", Attributes: map[string]schema.Attribute{ "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", ElementType: types.StringType, Required: false, Optional: true, @@ -31105,8 +6757,8 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas }, "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", ElementType: types.StringType, Required: false, Optional: true, @@ -31118,87 +6770,126 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "tolerations": schema.ListNestedAttribute{ + Description: "Tolerations to be used in the Pod.", + MarkdownDescription: "Tolerations to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "PasswordSecretKeyRef is a reference to the password of the monitoring user used by the exporter. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "PasswordSecretKeyRef is a reference to the password of the monitoring user used by the exporter. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "service_monitor": schema.SingleNestedAttribute{ + Description: "ServiceMonitor defines the ServiceMonior object.", + MarkdownDescription: "ServiceMonitor defines the ServiceMonior object.", + Attributes: map[string]schema.Attribute{ + "interval": schema.StringAttribute{ + Description: "Interval for scraping metrics.", + MarkdownDescription: "Interval for scraping metrics.", Required: false, Optional: true, Computed: false, }, - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", + "job_label": schema.StringAttribute{ + Description: "JobLabel to add to the ServiceMonitor object.", + MarkdownDescription: "JobLabel to add to the ServiceMonitor object.", Required: false, Optional: true, Computed: false, }, - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", + "prometheus_release": schema.StringAttribute{ + Description: "PrometheusRelease is the release label to add to the ServiceMonitor object.", + MarkdownDescription: "PrometheusRelease is the release label to add to the ServiceMonitor object.", Required: false, Optional: true, Computed: false, }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", + "scrape_timeout": schema.StringAttribute{ + Description: "ScrapeTimeout defines the timeout for scraping metrics.", + MarkdownDescription: "ScrapeTimeout defines the timeout for scraping metrics.", Required: false, Optional: true, Computed: false, @@ -31209,9 +6900,9 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "wait_for_volume_resize": schema.BoolAttribute{ - Description: "WaitForVolumeResize indicates whether to wait for the PVCs to be resized before marking the MariaDB object as ready. This will block other operations such as cluster recovery while the resize is in progress. It defaults to true.", - MarkdownDescription: "WaitForVolumeResize indicates whether to wait for the PVCs to be resized before marking the MariaDB object as ready. This will block other operations such as cluster recovery while the resize is in progress. It defaults to true.", + "username": schema.StringAttribute{ + Description: "Username is the username of the monitoring user used by the exporter.", + MarkdownDescription: "Username is the username of the monitoring user used by the exporter.", Required: false, Optional: true, Computed: false, @@ -31222,66 +6913,66 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + "my_cnf": schema.StringAttribute{ + Description: "MyCnf allows to specify the my.cnf file mounted by Mariadb. Updating this field will trigger an update to the Mariadb resource.", + MarkdownDescription: "MyCnf allows to specify the my.cnf file mounted by Mariadb. Updating this field will trigger an update to the Mariadb resource.", Required: false, Optional: true, Computed: false, }, - "time_zone": schema.StringAttribute{ - Description: "TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.", - MarkdownDescription: "TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.", + "my_cnf_config_map_key_ref": schema.SingleNestedAttribute{ + Description: "MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap. If not provided, it will be defaulted with a reference to a ConfigMap containing the MyCnf field. If the referred ConfigMap is labeled with 'k8s.mariadb.com/watch', an update to the Mariadb resource will be triggered when the ConfigMap is updated.", + MarkdownDescription: "MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap. If not provided, it will be defaulted with a reference to a ConfigMap containing the MyCnf field. If the referred ConfigMap is labeled with 'k8s.mariadb.com/watch', an update to the Mariadb resource will be triggered when the ConfigMap is updated.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "node_selector": schema.MapAttribute{ + Description: "NodeSelector to be used in the Pod.", + MarkdownDescription: "NodeSelector to be used in the Pod.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "tolerations": schema.ListNestedAttribute{ - Description: "Tolerations to be used in the Pod.", - MarkdownDescription: "Tolerations to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "effect": schema.StringAttribute{ - Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - Required: false, - Optional: true, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - Required: false, - Optional: true, - Computed: false, - }, - - "toleration_seconds": schema.Int64Attribute{ - Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - Required: false, - Optional: true, - Computed: false, - }, + "password_hash_secret_key_ref": schema.SingleNestedAttribute{ + Description: "PasswordHashSecretKeyRef is a reference to the password hash to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password hash.", + MarkdownDescription: "PasswordHashSecretKeyRef is a reference to the password hash to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password hash.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "value": schema.StringAttribute{ - Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -31289,121 +6980,116 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "topology_spread_constraints": schema.ListNestedAttribute{ - Description: "TopologySpreadConstraints to be used in the Pod.", - MarkdownDescription: "TopologySpreadConstraints to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - MarkdownDescription: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "password_plugin": schema.SingleNestedAttribute{ + Description: "PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.", + MarkdownDescription: "PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.", + Attributes: map[string]schema.Attribute{ + "plugin_arg_secret_key_ref": schema.SingleNestedAttribute{ + Description: "PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin arguments.", + MarkdownDescription: "PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin arguments.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "plugin_name_secret_key_ref": schema.SingleNestedAttribute{ + Description: "PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin.", + MarkdownDescription: "PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "max_skew": schema.Int64Attribute{ - Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - MarkdownDescription: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - Required: true, - Optional: false, - Computed: false, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "min_domains": schema.Int64Attribute{ - Description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - MarkdownDescription: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - Required: false, - Optional: true, - Computed: false, - }, + "password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "PasswordSecretKeyRef is a reference to a Secret that contains the password to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "PasswordSecretKeyRef is a reference to a Secret that contains the password to be used by the initial User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "node_affinity_policy": schema.StringAttribute{ - Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "node_taints_policy": schema.StringAttribute{ - Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "topology_key": schema.StringAttribute{ - Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - MarkdownDescription: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, + "pod_disruption_budget": schema.SingleNestedAttribute{ + Description: "PodDisruptionBudget defines the budget for replica availability.", + MarkdownDescription: "PodDisruptionBudget defines the budget for replica availability.", + Attributes: map[string]schema.Attribute{ + "max_unavailable": schema.StringAttribute{ + Description: "MaxUnavailable defines the number of maximum unavailable Pods.", + MarkdownDescription: "MaxUnavailable defines the number of maximum unavailable Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "when_unsatisfiable": schema.StringAttribute{ - Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - MarkdownDescription: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, + "min_available": schema.StringAttribute{ + Description: "MinAvailable defines the number of minimum available Pods.", + MarkdownDescription: "MinAvailable defines the number of minimum available Pods.", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -31411,35 +7097,54 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "update_strategy": schema.SingleNestedAttribute{ - Description: "UpdateStrategy defines how a MariaDB resource is updated.", - MarkdownDescription: "UpdateStrategy defines how a MariaDB resource is updated.", + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata defines extra metadata for the Pod.", + MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", Attributes: map[string]schema.Attribute{ - "auto_update_data_plane": schema.BoolAttribute{ - Description: "AutoUpdateDataPlane indicates whether the Galera data plane version (agent and init containers) should be automatically updated based on the operator version. It defaults to false. Updating the operator will trigger updates on all the MariaDB instances that have this flag set to true. Thus, it is recommended to progressively set this flag after having updated the operator.", - MarkdownDescription: "AutoUpdateDataPlane indicates whether the Galera data plane version (agent and init containers) should be automatically updated based on the operator version. It defaults to false. Updating the operator will trigger updates on all the MariaDB instances that have this flag set to true. Thus, it is recommended to progressively set this flag after having updated the operator.", + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "rolling_update": schema.SingleNestedAttribute{ - Description: "RollingUpdate defines parameters for the RollingUpdate type.", - MarkdownDescription: "RollingUpdate defines parameters for the RollingUpdate type.", + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "pod_security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", + Attributes: map[string]schema.Attribute{ + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", Attributes: map[string]schema.Attribute{ - "max_unavailable": schema.StringAttribute{ - Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", - MarkdownDescription: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", Required: false, Optional: true, Computed: false, }, - "partition": schema.Int64Attribute{ - Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", - MarkdownDescription: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", - Required: false, - Optional: true, + "type": schema.StringAttribute{ + Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + Required: true, + Optional: false, Computed: false, }, }, @@ -31448,1716 +7153,1635 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "type": schema.StringAttribute{ - Description: "Type defines the type of updates. One of 'ReplicasFirstPrimaryLast', 'RollingUpdate' or 'OnDelete'. If not defined, it defaults to 'ReplicasFirstPrimaryLast'.", - MarkdownDescription: "Type defines the type of updates. One of 'ReplicasFirstPrimaryLast', 'RollingUpdate' or 'OnDelete'. If not defined, it defaults to 'ReplicasFirstPrimaryLast'.", + "fs_group": schema.Int64Attribute{ + Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", Required: false, Optional: true, Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("ReplicasFirstPrimaryLast", "RollingUpdate", "OnDelete", "Never"), - }, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "username": schema.StringAttribute{ - Description: "Username is the initial username to be created by the operator once MariaDB is ready. It has all privileges on the initial database. The initial User will have ALL PRIVILEGES in the initial Database.", - MarkdownDescription: "Username is the initial username to be created by the operator once MariaDB is ready. It has all privileges on the initial database. The initial User will have ALL PRIVILEGES in the initial Database.", - Required: false, - Optional: true, - Computed: false, - }, + "fs_group_change_policy": schema.StringAttribute{ + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "se_linux_options": schema.SingleNestedAttribute{ + Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "level": schema.StringAttribute{ + Description: "Level is SELinux level label that applies to the container.", + MarkdownDescription: "Level is SELinux level label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, + "role": schema.StringAttribute{ + Description: "Role is a SELinux role label that applies to the container.", + MarkdownDescription: "Role is a SELinux role label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type is a SELinux type label that applies to the container.", + MarkdownDescription: "Type is a SELinux type label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, + "user": schema.StringAttribute{ + Description: "User is a SELinux user label that applies to the container.", + MarkdownDescription: "User is a SELinux user label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volumes": schema.ListNestedAttribute{ - Description: "Volumes to be used in the Pod.", - MarkdownDescription: "Volumes to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + Required: true, + Optional: false, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, + "supplemental_groups": schema.ListAttribute{ + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", + "sysctls": schema.ListNestedAttribute{ + Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of a property to set", + MarkdownDescription: "Name of a property to set", Required: true, Optional: false, Computed: false, }, - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", + "value": schema.StringAttribute{ + Description: "Value of a property to set", + MarkdownDescription: "Value of a property to set", Required: true, Optional: false, Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "windows_options": schema.SingleNestedAttribute{ + Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + Attributes: map[string]schema.Attribute{ + "gmsa_credential_spec": schema.StringAttribute{ + Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + Required: false, + Optional: true, + Computed: false, + }, - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "host_process": schema.BoolAttribute{ + Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user_name": schema.StringAttribute{ + Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port where the instances will be listening for connections.", + MarkdownDescription: "Port where the instances will be listening for connections.", + Required: false, + Optional: true, + Computed: false, + }, - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, + "primary_connection": schema.SingleNestedAttribute{ + Description: "PrimaryConnection defines a template to configure the primary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the PrimaryService to route network traffic to the primary Pod.", + MarkdownDescription: "PrimaryConnection defines a template to configure the primary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the PrimaryService to route network traffic to the primary Pod.", + Attributes: map[string]schema.Attribute{ + "health_check": schema.SingleNestedAttribute{ + Description: "HealthCheck to be used in the Connection.", + MarkdownDescription: "HealthCheck to be used in the Connection.", + Attributes: map[string]schema.Attribute{ + "interval": schema.StringAttribute{ + Description: "Interval used to perform health checks.", + MarkdownDescription: "Interval used to perform health checks.", + Required: false, + Optional: true, + Computed: false, + }, - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, + "retry_interval": schema.StringAttribute{ + Description: "RetryInterval is the interval used to perform health check retries.", + MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, + "params": schema.MapAttribute{ + Description: "Params to be used in the Connection.", + MarkdownDescription: "Params to be used in the Connection.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", + MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "secret_name": schema.StringAttribute{ + Description: "SecretName to be used in the Connection.", + MarkdownDescription: "SecretName to be used in the Connection.", + Required: false, + Optional: true, + Computed: false, + }, - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "secret_template": schema.SingleNestedAttribute{ + Description: "SecretTemplate to be used in the Connection.", + MarkdownDescription: "SecretTemplate to be used in the Connection.", + Attributes: map[string]schema.Attribute{ + "database_key": schema.StringAttribute{ + Description: "DatabaseKey to be used in the Secret.", + MarkdownDescription: "DatabaseKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "format": schema.StringAttribute{ + Description: "Format to be used in the Secret.", + MarkdownDescription: "Format to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "host_key": schema.StringAttribute{ + Description: "HostKey to be used in the Secret.", + MarkdownDescription: "HostKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, + "key": schema.StringAttribute{ + Description: "Key to be used in the Secret.", + MarkdownDescription: "Key to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Secret object.", + MarkdownDescription: "Metadata to be added to the Secret object.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, + "password_key": schema.StringAttribute{ + Description: "PasswordKey to be used in the Secret.", + MarkdownDescription: "PasswordKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "port_key": schema.StringAttribute{ + Description: "PortKey to be used in the Secret.", + MarkdownDescription: "PortKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, + "username_key": schema.StringAttribute{ + Description: "UsernameKey to be used in the Secret.", + MarkdownDescription: "UsernameKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "service_name": schema.StringAttribute{ + Description: "ServiceName to be used in the Connection.", + MarkdownDescription: "ServiceName to be used in the Connection.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "primary_service": schema.SingleNestedAttribute{ + Description: "PrimaryService defines a template to configure the primary Service object. The network traffic of this Service will be routed to the primary Pod.", + MarkdownDescription: "PrimaryService defines a template to configure the primary Service object. The network traffic of this Service will be routed to the primary Pod.", + Attributes: map[string]schema.Attribute{ + "allocate_load_balancer_node_ports": schema.BoolAttribute{ + Description: "AllocateLoadBalancerNodePorts Service field.", + MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "external_traffic_policy": schema.StringAttribute{ + Description: "ExternalTrafficPolicy Service field.", + MarkdownDescription: "ExternalTrafficPolicy Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "load_balancer_ip": schema.StringAttribute{ + Description: "LoadBalancerIP Service field.", + MarkdownDescription: "LoadBalancerIP Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "load_balancer_source_ranges": schema.ListAttribute{ + Description: "LoadBalancerSourceRanges Service field.", + MarkdownDescription: "LoadBalancerSourceRanges Service field.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Service metadata.", + MarkdownDescription: "Metadata to be added to the Service metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, + "session_affinity": schema.StringAttribute{ + Description: "SessionAffinity Service field.", + MarkdownDescription: "SessionAffinity Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName to be used in the Pod.", + MarkdownDescription: "PriorityClassName to be used in the Pod.", + Required: false, + Optional: true, + Computed: false, + }, + + "readiness_probe": schema.SingleNestedAttribute{ + Description: "ReadinessProbe to be used in the Container.", + MarkdownDescription: "ReadinessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, + "replicas": schema.Int64Attribute{ + Description: "Replicas indicates the number of desired instances.", + MarkdownDescription: "Replicas indicates the number of desired instances.", + Required: false, + Optional: true, + Computed: false, + }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, + "replicas_allow_even_number": schema.BoolAttribute{ + Description: "disables the validation check for an odd number of replicas.", + MarkdownDescription: "disables the validation check for an odd number of replicas.", + Required: false, + Optional: true, + Computed: false, + }, - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "replication": schema.SingleNestedAttribute{ + Description: "Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA.", + MarkdownDescription: "Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA.", + Attributes: map[string]schema.Attribute{ + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable Replication.", + MarkdownDescription: "Enabled is a flag to enable Replication.", + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "primary": schema.SingleNestedAttribute{ + Description: "Primary is the replication configuration for the primary node.", + MarkdownDescription: "Primary is the replication configuration for the primary node.", + Attributes: map[string]schema.Attribute{ + "automatic_failover": schema.BoolAttribute{ + Description: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", + MarkdownDescription: "AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, + "pod_index": schema.Int64Attribute{ + Description: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", + MarkdownDescription: "PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "probes_enabled": schema.BoolAttribute{ + Description: "ProbesEnabled indicates to use replication specific liveness and readiness probes. This probes check that the primary can receive queries and that the replica has the replication thread running.", + MarkdownDescription: "ProbesEnabled indicates to use replication specific liveness and readiness probes. This probes check that the primary can receive queries and that the replica has the replication thread running.", + Required: false, + Optional: true, + Computed: false, + }, - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, + "replica": schema.SingleNestedAttribute{ + Description: "ReplicaReplication is the replication configuration for the replica nodes.", + MarkdownDescription: "ReplicaReplication is the replication configuration for the replica nodes.", + Attributes: map[string]schema.Attribute{ + "connection_retries": schema.Int64Attribute{ + Description: "ConnectionRetries to be used when the replica connects to the primary.", + MarkdownDescription: "ConnectionRetries to be used when the replica connects to the primary.", + Required: false, + Optional: true, + Computed: false, + }, - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "connection_timeout": schema.StringAttribute{ + Description: "ConnectionTimeout to be used when the replica connects to the primary.", + MarkdownDescription: "ConnectionTimeout to be used when the replica connects to the primary.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "gtid": schema.StringAttribute{ + Description: "Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.", + MarkdownDescription: "Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("CurrentPos", "SlavePos"), + }, + }, - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, + "repl_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.", + MarkdownDescription: "ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "sync_timeout": schema.StringAttribute{ + Description: "SyncTimeout defines the timeout for a replica to be synced with the primary when performing a primary switchover. If the timeout is reached, the replica GTID will be reset and the switchover will continue.", + MarkdownDescription: "SyncTimeout defines the timeout for a replica to be synced with the primary when performing a primary switchover. If the timeout is reached, the replica GTID will be reset and the switchover will continue.", + Required: false, + Optional: true, + Computed: false, + }, - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "wait_point": schema.StringAttribute{ + Description: "WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.", + MarkdownDescription: "WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("AfterSync", "AfterCommit"), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "sync_binlog": schema.BoolAttribute{ + Description: "SyncBinlog indicates whether the binary log should be synchronized to the disk after every event. It trades off performance for consistency. See: https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#sync_binlog.", + MarkdownDescription: "SyncBinlog indicates whether the binary log should be synchronized to the disk after every event. It trades off performance for consistency. See: https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#sync_binlog.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "root_empty_password": schema.BoolAttribute{ + Description: "RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments.", + MarkdownDescription: "RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments.", + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "root_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "RootPasswordSecretKeyRef is a reference to a Secret key containing the root password.", + MarkdownDescription: "RootPasswordSecretKeyRef is a reference to a Secret key containing the root password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, + "secondary_connection": schema.SingleNestedAttribute{ + Description: "SecondaryConnection defines a template to configure the secondary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the SecondaryService to route network traffic to the secondary Pods.", + MarkdownDescription: "SecondaryConnection defines a template to configure the secondary Connection object. This Connection provides the initial User access to the initial Database. It will make use of the SecondaryService to route network traffic to the secondary Pods.", + Attributes: map[string]schema.Attribute{ + "health_check": schema.SingleNestedAttribute{ + Description: "HealthCheck to be used in the Connection.", + MarkdownDescription: "HealthCheck to be used in the Connection.", + Attributes: map[string]schema.Attribute{ + "interval": schema.StringAttribute{ + Description: "Interval used to perform health checks.", + MarkdownDescription: "Interval used to perform health checks.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "retry_interval": schema.StringAttribute{ + Description: "RetryInterval is the interval used to perform health check retries.", + MarkdownDescription: "RetryInterval is the interval used to perform health check retries.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, + "params": schema.MapAttribute{ + Description: "Params to be used in the Connection.", + MarkdownDescription: "Params to be used in the Connection.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", + MarkdownDescription: "Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.", + Required: false, + Optional: true, + Computed: false, + }, - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "secret_name": schema.StringAttribute{ + Description: "SecretName to be used in the Connection.", + MarkdownDescription: "SecretName to be used in the Connection.", + Required: false, + Optional: true, + Computed: false, + }, - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "secret_template": schema.SingleNestedAttribute{ + Description: "SecretTemplate to be used in the Connection.", + MarkdownDescription: "SecretTemplate to be used in the Connection.", + Attributes: map[string]schema.Attribute{ + "database_key": schema.StringAttribute{ + Description: "DatabaseKey to be used in the Secret.", + MarkdownDescription: "DatabaseKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, + "format": schema.StringAttribute{ + Description: "Format to be used in the Secret.", + MarkdownDescription: "Format to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, + "host_key": schema.StringAttribute{ + Description: "HostKey to be used in the Secret.", + MarkdownDescription: "HostKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "Key to be used in the Secret.", + MarkdownDescription: "Key to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Secret object.", + MarkdownDescription: "Metadata to be added to the Secret object.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, + "password_key": schema.StringAttribute{ + Description: "PasswordKey to be used in the Secret.", + MarkdownDescription: "PasswordKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, + "port_key": schema.StringAttribute{ + Description: "PortKey to be used in the Secret.", + MarkdownDescription: "PortKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, + }, + + "username_key": schema.StringAttribute{ + Description: "UsernameKey to be used in the Secret.", + MarkdownDescription: "UsernameKey to be used in the Secret.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "service_name": schema.StringAttribute{ + Description: "ServiceName to be used in the Connection.", + MarkdownDescription: "ServiceName to be used in the Connection.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "secondary_service": schema.SingleNestedAttribute{ + Description: "SecondaryService defines a template to configure the secondary Service object. The network traffic of this Service will be routed to the secondary Pods.", + MarkdownDescription: "SecondaryService defines a template to configure the secondary Service object. The network traffic of this Service will be routed to the secondary Pods.", + Attributes: map[string]schema.Attribute{ + "allocate_load_balancer_node_ports": schema.BoolAttribute{ + Description: "AllocateLoadBalancerNodePorts Service field.", + MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, + "external_traffic_policy": schema.StringAttribute{ + Description: "ExternalTrafficPolicy Service field.", + MarkdownDescription: "ExternalTrafficPolicy Service field.", + Required: false, + Optional: true, + Computed: false, + }, + + "load_balancer_ip": schema.StringAttribute{ + Description: "LoadBalancerIP Service field.", + MarkdownDescription: "LoadBalancerIP Service field.", + Required: false, + Optional: true, + Computed: false, + }, + + "load_balancer_source_ranges": schema.ListAttribute{ + Description: "LoadBalancerSourceRanges Service field.", + MarkdownDescription: "LoadBalancerSourceRanges Service field.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Service metadata.", + MarkdownDescription: "Metadata to be added to the Service metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, - - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, + "session_affinity": schema.StringAttribute{ + Description: "SessionAffinity Service field.", + MarkdownDescription: "SessionAffinity Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "type": schema.StringAttribute{ + Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, + "security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds security configuration that will be applied to a container.", + MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", + Attributes: map[string]schema.Attribute{ + "allow_privilege_escalation": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, + "capabilities": schema.SingleNestedAttribute{ + Description: "Adds and removes POSIX capabilities from running containers.", + MarkdownDescription: "Adds and removes POSIX capabilities from running containers.", + Attributes: map[string]schema.Attribute{ + "add": schema.ListAttribute{ + Description: "Added capabilities", + MarkdownDescription: "Added capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, + "drop": schema.ListAttribute{ + Description: "Removed capabilities", + MarkdownDescription: "Removed capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, + "privileged": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "read_only_root_filesystem": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, + "service": schema.SingleNestedAttribute{ + Description: "Service defines a template to configure the general Service object. The network traffic of this Service will be routed to all Pods.", + MarkdownDescription: "Service defines a template to configure the general Service object. The network traffic of this Service will be routed to all Pods.", + Attributes: map[string]schema.Attribute{ + "allocate_load_balancer_node_ports": schema.BoolAttribute{ + Description: "AllocateLoadBalancerNodePorts Service field.", + MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, + "external_traffic_policy": schema.StringAttribute{ + Description: "ExternalTrafficPolicy Service field.", + MarkdownDescription: "ExternalTrafficPolicy Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, + "load_balancer_ip": schema.StringAttribute{ + Description: "LoadBalancerIP Service field.", + MarkdownDescription: "LoadBalancerIP Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, + "load_balancer_source_ranges": schema.ListAttribute{ + Description: "LoadBalancerSourceRanges Service field.", + MarkdownDescription: "LoadBalancerSourceRanges Service field.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Service metadata.", + MarkdownDescription: "Metadata to be added to the Service metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "session_affinity": schema.StringAttribute{ + Description: "SessionAffinity Service field.", + MarkdownDescription: "SessionAffinity Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "service_account_name": schema.StringAttribute{ + Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "sidecar_containers": schema.ListNestedAttribute{ + Description: "SidecarContainers to be used in the Pod.", + MarkdownDescription: "SidecarContainers to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - "name": schema.StringAttribute{ - Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "command": schema.ListAttribute{ + Description: "Command to be used in the Container.", + MarkdownDescription: "Command to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "image": schema.StringAttribute{ + Description: "Image name to be used by the container. The supported format is ':'.", + MarkdownDescription: "Image name to be used by the container. The supported format is ':'.", Required: true, Optional: false, Computed: false, }, - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, - - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), }, - Required: false, - Optional: true, - Computed: false, }, - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, }, Required: false, Optional: true, Computed: false, }, - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "volume_mounts": schema.ListNestedAttribute{ + Description: "VolumeMounts to be used in the Container.", + MarkdownDescription: "VolumeMounts to be used in the Container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "mount_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "This must match the Name of a Volume.", + MarkdownDescription: "This must match the Name of a Volume.", + Required: true, + Optional: false, + Computed: false, + }, - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", - Required: true, - Optional: false, - Computed: false, + "read_only": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "sub_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, Optional: true, Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "storage": schema.SingleNestedAttribute{ + Description: "Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.", + MarkdownDescription: "Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.", + Attributes: map[string]schema.Attribute{ + "ephemeral": schema.BoolAttribute{ + Description: "Ephemeral indicates whether to use ephemeral storage in the PVCs. It is only compatible with non HA MariaDBs.", + MarkdownDescription: "Ephemeral indicates whether to use ephemeral storage in the PVCs. It is only compatible with non HA MariaDBs.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, + "resize_in_use_volumes": schema.BoolAttribute{ + Description: "ResizeInUseVolumes indicates whether the PVCs can be resized. The 'StorageClassName' used should have 'allowVolumeExpansion' set to 'true' to allow resizing. It defaults to true.", + MarkdownDescription: "ResizeInUseVolumes indicates whether the PVCs can be resized. The 'StorageClassName' used should have 'allowVolumeExpansion' set to 'true' to allow resizing. It defaults to true.", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, + "size": schema.StringAttribute{ + Description: "Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It superseeds the storage size specified in 'VolumeClaimTemplate'.", + MarkdownDescription: "Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It superseeds the storage size specified in 'VolumeClaimTemplate'.", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, + "storage_class_name": schema.StringAttribute{ + Description: "StorageClassName to be used to provision the PVCS. It superseeds the 'StorageClassName' specified in 'VolumeClaimTemplate'. If not provided, the default 'StorageClass' configured in the cluster is used.", + MarkdownDescription: "StorageClassName to be used to provision the PVCS. It superseeds the 'StorageClassName' specified in 'VolumeClaimTemplate'. If not provided, the default 'StorageClass' configured in the cluster is used.", + Required: false, + Optional: true, + Computed: false, + }, - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "volume_claim_template": schema.SingleNestedAttribute{ + Description: "VolumeClaimTemplate provides a template to define the PVCs.", + MarkdownDescription: "VolumeClaimTemplate provides a template to define the PVCs.", + Attributes: map[string]schema.Attribute{ + "access_modes": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the PVC metadata.", + MarkdownDescription: "Metadata to be added to the PVC metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + MarkdownDescription: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, + "selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, + "storage_class_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "wait_for_volume_resize": schema.BoolAttribute{ + Description: "WaitForVolumeResize indicates whether to wait for the PVCs to be resized before marking the MariaDB object as ready. This will block other operations such as cluster recovery while the resize is in progress. It defaults to true.", + MarkdownDescription: "WaitForVolumeResize indicates whether to wait for the PVCs to be resized before marking the MariaDB object as ready. This will block other operations such as cluster recovery while the resize is in progress. It defaults to true.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + Required: false, + Optional: true, + Computed: false, + }, - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "time_zone": schema.StringAttribute{ + Description: "TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.", + MarkdownDescription: "TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.", + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "tolerations": schema.ListNestedAttribute{ + Description: "Tolerations to be used in the Pod.", + MarkdownDescription: "Tolerations to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, + "topology_spread_constraints": schema.ListNestedAttribute{ + Description: "TopologySpreadConstraints to be used in the Pod.", + MarkdownDescription: "TopologySpreadConstraints to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, + + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, }, @@ -33165,191 +8789,216 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, + + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, Computed: false, }, - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", - Required: false, - Optional: true, - Computed: false, - }, + "match_label_keys": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "max_skew": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Required: true, - Optional: false, - Computed: false, - }, + "min_domains": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Required: false, - Optional: true, - Computed: false, - }, + "node_affinity_policy": schema.StringAttribute{ + Description: "NodeInclusionPolicy defines the type of node inclusion policy", + MarkdownDescription: "NodeInclusionPolicy defines the type of node inclusion policy", + Required: false, + Optional: true, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", - Required: false, - Optional: true, - Computed: false, - }, + "node_taints_policy": schema.StringAttribute{ + Description: "NodeInclusionPolicy defines the type of node inclusion policy", + MarkdownDescription: "NodeInclusionPolicy defines the type of node inclusion policy", + Required: false, + Optional: true, + Computed: false, + }, - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Required: false, - Optional: true, - Computed: false, - }, + "when_unsatisfiable": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: true, - Optional: false, - Computed: false, - }, + "update_strategy": schema.SingleNestedAttribute{ + Description: "UpdateStrategy defines how a MariaDB resource is updated.", + MarkdownDescription: "UpdateStrategy defines how a MariaDB resource is updated.", + Attributes: map[string]schema.Attribute{ + "auto_update_data_plane": schema.BoolAttribute{ + Description: "AutoUpdateDataPlane indicates whether the Galera data-plane version (agent and init containers) should be automatically updated based on the operator version. It defaults to false. Updating the operator will trigger updates on all the MariaDB instances that have this flag set to true. Thus, it is recommended to progressively set this flag after having updated the operator.", + MarkdownDescription: "AutoUpdateDataPlane indicates whether the Galera data-plane version (agent and init containers) should be automatically updated based on the operator version. It defaults to false. Updating the operator will trigger updates on all the MariaDB instances that have this flag set to true. Thus, it is recommended to progressively set this flag after having updated the operator.", + Required: false, + Optional: true, + Computed: false, + }, + + "rolling_update": schema.SingleNestedAttribute{ + Description: "RollingUpdate defines parameters for the RollingUpdate type.", + MarkdownDescription: "RollingUpdate defines parameters for the RollingUpdate type.", + Attributes: map[string]schema.Attribute{ + "max_unavailable": schema.StringAttribute{ + Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", + MarkdownDescription: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", + Required: false, + Optional: true, + Computed: false, + }, + + "partition": schema.Int64Attribute{ + Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", + MarkdownDescription: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type defines the type of updates. One of 'ReplicasFirstPrimaryLast', 'RollingUpdate' or 'OnDelete'. If not defined, it defaults to 'ReplicasFirstPrimaryLast'.", + MarkdownDescription: "Type defines the type of updates. One of 'ReplicasFirstPrimaryLast', 'RollingUpdate' or 'OnDelete'. If not defined, it defaults to 'ReplicasFirstPrimaryLast'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("ReplicasFirstPrimaryLast", "RollingUpdate", "OnDelete", "Never"), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, + "username": schema.StringAttribute{ + Description: "Username is the initial username to be created by the operator once MariaDB is ready. It has all privileges on the initial database. The initial User will have ALL PRIVILEGES in the initial Database.", + MarkdownDescription: "Username is the initial username to be created by the operator once MariaDB is ready. It has all privileges on the initial database. The initial User will have ALL PRIVILEGES in the initial Database.", + Required: false, + Optional: true, + Computed: false, + }, - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "volume_mounts": schema.ListNestedAttribute{ + Description: "VolumeMounts to be used in the Container.", + MarkdownDescription: "VolumeMounts to be used in the Container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "mount_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "This must match the Name of a Volume.", + MarkdownDescription: "This must match the Name of a Volume.", + Required: true, + Optional: false, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "read_only": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "sub_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "volumes": schema.ListNestedAttribute{ + Description: "Volumes to be used in the Pod.", + MarkdownDescription: "Volumes to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "csi": schema.SingleNestedAttribute{ + Description: "Represents a source location of a volume to mount, managed by an external CSI driver", + MarkdownDescription: "Represents a source location of a volume to mount, managed by an external CSI driver", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - Required: false, - Optional: true, - Computed: false, - }, - - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", + "driver": schema.StringAttribute{ + Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", Required: true, Optional: false, Computed: false, }, - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "fs_type": schema.StringAttribute{ + Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", + MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", Required: false, Optional: true, Computed: false, }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "node_publish_secret_ref": schema.SingleNestedAttribute{ + Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", + MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", @@ -33359,46 +9008,23 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, }, - Required: true, - Optional: false, + Required: false, + Optional: true, Computed: false, }, - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", + "read_only": schema.BoolAttribute{ + Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", + MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", Required: false, Optional: true, Computed: false, }, - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", + "volume_attributes": schema.MapAttribute{ + Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, @@ -33409,64 +9035,21 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "empty_dir": schema.SingleNestedAttribute{ + Description: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + MarkdownDescription: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", + "medium": schema.StringAttribute{ + Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", Required: false, Optional: true, Computed: false, }, - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "size_limit": schema.StringAttribute{ + Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", Required: false, Optional: true, Computed: false, @@ -33477,56 +9060,39 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "nfs": schema.SingleNestedAttribute{ + Description: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + MarkdownDescription: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, + "path": schema.StringAttribute{ + Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, Computed: false, }, "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", Required: false, Optional: true, Computed: false, }, - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Required: false, - Optional: true, + "server": schema.StringAttribute{ + Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, Computed: false, }, }, @@ -33535,41 +9101,25 @@ func (r *K8SMariadbComMariaDbV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "persistent_volume_claim": schema.SingleNestedAttribute{ + Description: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + MarkdownDescription: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Required: false, - Optional: true, + "claim_name": schema.StringAttribute{ + Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + Required: true, + Optional: false, Computed: false, }, - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", + "read_only": schema.BoolAttribute{ + Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", Required: false, Optional: true, Computed: false, }, - - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", - Required: true, - Optional: false, - Computed: false, - }, }, Required: false, Optional: true, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_max_scale_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_max_scale_v1alpha1_manifest.go index 368344da5..11912e143 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_max_scale_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_max_scale_v1alpha1_manifest.go @@ -49,87 +49,7 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"admin" json:"admin,omitempty"` Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -140,18 +60,7 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -164,18 +73,7 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` @@ -185,7 +83,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"admin_password_secret_key_ref" json:"adminPasswordSecretKeyRef,omitempty"` AdminUsername *string `tfsdk:"admin_username" json:"adminUsername,omitempty"` ClientMaxConnections *int64 `tfsdk:"client_max_connections" json:"clientMaxConnections,omitempty"` @@ -193,7 +90,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"client_password_secret_key_ref" json:"clientPasswordSecretKeyRef,omitempty"` ClientUsername *string `tfsdk:"client_username" json:"clientUsername,omitempty"` DeleteDefaultAdmin *bool `tfsdk:"delete_default_admin" json:"deleteDefaultAdmin,omitempty"` @@ -202,7 +98,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"metrics_password_secret_key_ref" json:"metricsPasswordSecretKeyRef,omitempty"` MetricsUsername *string `tfsdk:"metrics_username" json:"metricsUsername,omitempty"` MonitorMaxConnections *int64 `tfsdk:"monitor_max_connections" json:"monitorMaxConnections,omitempty"` @@ -210,7 +105,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"monitor_password_secret_key_ref" json:"monitorPasswordSecretKeyRef,omitempty"` MonitorUsername *string `tfsdk:"monitor_username" json:"monitorUsername,omitempty"` ServerMaxConnections *int64 `tfsdk:"server_max_connections" json:"serverMaxConnections,omitempty"` @@ -218,7 +112,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"server_password_secret_key_ref" json:"serverPasswordSecretKeyRef,omitempty"` ServerUsername *string `tfsdk:"server_username" json:"serverUsername,omitempty"` SyncMaxConnections *int64 `tfsdk:"sync_max_connections" json:"syncMaxConnections,omitempty"` @@ -226,7 +119,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Generate *bool `tfsdk:"generate" json:"generate,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"sync_password_secret_key_ref" json:"syncPasswordSecretKeyRef,omitempty"` SyncUsername *string `tfsdk:"sync_username" json:"syncUsername,omitempty"` } `tfsdk:"auth" json:"auth,omitempty"` @@ -240,18 +132,7 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"sync" json:"sync,omitempty"` VolumeClaimTemplate *struct { AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Metadata *struct { + Metadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"metadata" json:"metadata,omitempty"` @@ -267,10 +148,7 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` } `tfsdk:"config" json:"config,omitempty"` Connection *struct { @@ -301,35 +179,26 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` ValueFrom *struct { ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` FieldRef *struct { ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` } `tfsdk:"value_from" json:"valueFrom,omitempty"` } `tfsdk:"env" json:"env,omitempty"` EnvFrom *[]struct { ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_ref" json:"secretRef,omitempty"` } `tfsdk:"env_from" json:"envFrom,omitempty"` GuiKubernetesService *struct { @@ -353,156 +222,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"inherit_metadata" json:"inheritMetadata,omitempty"` - InitContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"init_containers" json:"initContainers,omitempty"` KubernetesService *struct { AllocateLoadBalancerNodePorts *bool `tfsdk:"allocate_load_balancer_node_ports" json:"allocateLoadBalancerNodePorts,omitempty"` ExternalTrafficPolicy *string `tfsdk:"external_traffic_policy" json:"externalTrafficPolicy,omitempty"` @@ -520,16 +239,8 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -537,109 +248,19 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` Metrics *struct { Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` Exporter *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -650,18 +271,7 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -674,243 +284,15 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` Image *string `tfsdk:"image" json:"image,omitempty"` ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` ImagePullSecrets *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` - InitContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"init_containers" json:"initContainers,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` PodMetadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -951,227 +333,10 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` + Resources *struct { Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` - SidecarContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"sidecar_containers" json:"sidecarContainers,omitempty"` Tolerations *[]struct { Effect *string `tfsdk:"effect" json:"effect,omitempty"` Key *string `tfsdk:"key" json:"key,omitempty"` @@ -1179,339 +344,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` - TopologySpreadConstraints *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MaxSkew *int64 `tfsdk:"max_skew" json:"maxSkew,omitempty"` - MinDomains *int64 `tfsdk:"min_domains" json:"minDomains,omitempty"` - NodeAffinityPolicy *string `tfsdk:"node_affinity_policy" json:"nodeAffinityPolicy,omitempty"` - NodeTaintsPolicy *string `tfsdk:"node_taints_policy" json:"nodeTaintsPolicy,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - WhenUnsatisfiable *string `tfsdk:"when_unsatisfiable" json:"whenUnsatisfiable,omitempty"` - } `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - Volumes *[]struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Csi *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - NodePublishSecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"node_publish_secret_ref" json:"nodePublishSecretRef,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` - } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - EmptyDir *struct { - Medium *string `tfsdk:"medium" json:"medium,omitempty"` - SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` - } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Nfs *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Server *string `tfsdk:"server" json:"server,omitempty"` - } `tfsdk:"nfs" json:"nfs,omitempty"` - PersistentVolumeClaim *struct { - ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` - } `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"exporter" json:"exporter,omitempty"` ServiceMonitor *struct { Interval *string `tfsdk:"interval" json:"interval,omitempty"` @@ -1576,16 +408,8 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` + HttpGet *struct { + Host *string `tfsdk:"host" json:"host,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` Port *string `tfsdk:"port" json:"port,omitempty"` Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` @@ -1593,55 +417,25 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` + TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Replicas *int64 `tfsdk:"replicas" json:"replicas,omitempty"` RequeueInterval *string `tfsdk:"requeue_interval" json:"requeueInterval,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` Servers *[]struct { Address *string `tfsdk:"address" json:"address,omitempty"` @@ -1665,156 +459,6 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Router *string `tfsdk:"router" json:"router,omitempty"` Suspend *bool `tfsdk:"suspend" json:"suspend,omitempty"` } `tfsdk:"services" json:"services,omitempty"` - SidecarContainers *[]struct { - Args *[]string `tfsdk:"args" json:"args,omitempty"` - Command *[]string `tfsdk:"command" json:"command,omitempty"` - Env *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - ValueFrom *struct { - ConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_key_ref" json:"configMapKeyRef,omitempty"` - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - SecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_key_ref" json:"secretKeyRef,omitempty"` - } `tfsdk:"value_from" json:"valueFrom,omitempty"` - } `tfsdk:"env" json:"env,omitempty"` - EnvFrom *[]struct { - ConfigMapRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map_ref" json:"configMapRef,omitempty"` - Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"env_from" json:"envFrom,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` - LivenessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - ReadinessProbe *struct { - Exec *struct { - Command *[]string `tfsdk:"command" json:"command,omitempty"` - } `tfsdk:"exec" json:"exec,omitempty"` - FailureThreshold *int64 `tfsdk:"failure_threshold" json:"failureThreshold,omitempty"` - Grpc *struct { - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Service *string `tfsdk:"service" json:"service,omitempty"` - } `tfsdk:"grpc" json:"grpc,omitempty"` - HttpGet *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - HttpHeaders *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Value *string `tfsdk:"value" json:"value,omitempty"` - } `tfsdk:"http_headers" json:"httpHeaders,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` - } `tfsdk:"http_get" json:"httpGet,omitempty"` - InitialDelaySeconds *int64 `tfsdk:"initial_delay_seconds" json:"initialDelaySeconds,omitempty"` - PeriodSeconds *int64 `tfsdk:"period_seconds" json:"periodSeconds,omitempty"` - SuccessThreshold *int64 `tfsdk:"success_threshold" json:"successThreshold,omitempty"` - TcpSocket *struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` - } `tfsdk:"tcp_socket" json:"tcpSocket,omitempty"` - TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` - TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` - } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` - Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - SecurityContext *struct { - AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { - Add *[]string `tfsdk:"add" json:"add,omitempty"` - Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` - } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` - } `tfsdk:"security_context" json:"securityContext,omitempty"` - VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` - } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - } `tfsdk:"sidecar_containers" json:"sidecarContainers,omitempty"` Suspend *bool `tfsdk:"suspend" json:"suspend,omitempty"` Tolerations *[]struct { Effect *string `tfsdk:"effect" json:"effect,omitempty"` @@ -1848,321 +492,11 @@ type K8SMariadbComMaxScaleV1Alpha1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"update_strategy" json:"updateStrategy,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - Volumes *[]struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Csi *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - NodePublishSecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"node_publish_secret_ref" json:"nodePublishSecretRef,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` - } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - EmptyDir *struct { - Medium *string `tfsdk:"medium" json:"medium,omitempty"` - SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` - } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Nfs *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Server *string `tfsdk:"server" json:"server,omitempty"` - } `tfsdk:"nfs" json:"nfs,omitempty"` - PersistentVolumeClaim *struct { - ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` - } `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } @@ -2280,295 +614,22 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", Attributes: map[string]schema.Attribute{ "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", + Description: "", + MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -2620,18 +681,9 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -2643,8 +695,8 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -2657,13 +709,13 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + Description: "", + MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -2715,99 +767,69 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "auth": schema.SingleNestedAttribute{ + Description: "Auth defines the credentials required for MaxScale to connect to MariaDB.", + MarkdownDescription: "Auth defines the credentials required for MaxScale to connect to MariaDB.", + Attributes: map[string]schema.Attribute{ + "admin_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", + MarkdownDescription: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -2815,361 +837,131 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", + "admin_username": schema.StringAttribute{ + Description: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", + MarkdownDescription: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, + + "client_max_connections": schema.Int64Attribute{ + Description: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + Required: false, + Optional: true, + Computed: false, + }, + + "client_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "client_username": schema.StringAttribute{ + Description: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", + MarkdownDescription: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "delete_default_admin": schema.BoolAttribute{ + Description: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", + MarkdownDescription: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", + Required: false, + Optional: true, + Computed: false, + }, - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "generate": schema.BoolAttribute{ + Description: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", + MarkdownDescription: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", + Required: false, + Optional: true, + Computed: false, + }, - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "metrics_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + Attributes: map[string]schema.Attribute{ + "generate": schema.BoolAttribute{ + Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "metrics_username": schema.StringAttribute{ + Description: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", + MarkdownDescription: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "monitor_max_connections": schema.Int64Attribute{ + Description: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + Required: false, + Optional: true, + Computed: false, + }, - "auth": schema.SingleNestedAttribute{ - Description: "Auth defines the credentials required for MaxScale to connect to MariaDB.", - MarkdownDescription: "Auth defines the credentials required for MaxScale to connect to MariaDB.", - Attributes: map[string]schema.Attribute{ - "admin_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", - MarkdownDescription: "AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.", + "monitor_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", Attributes: map[string]schema.Attribute{ "generate": schema.BoolAttribute{ Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", @@ -3180,24 +972,16 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -3208,25 +992,25 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "admin_username": schema.StringAttribute{ - Description: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", - MarkdownDescription: "AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.", + "monitor_username": schema.StringAttribute{ + Description: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", + MarkdownDescription: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", Required: false, Optional: true, Computed: false, }, - "client_max_connections": schema.Int64Attribute{ - Description: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "ClientMaxConnections defines the maximum number of connections that the client can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + "server_max_connections": schema.Int64Attribute{ + Description: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", Required: false, Optional: true, Computed: false, }, - "client_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + "server_password_secret_key_ref": schema.SingleNestedAttribute{ + Description: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", + MarkdownDescription: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", Attributes: map[string]schema.Attribute{ "generate": schema.BoolAttribute{ Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", @@ -3237,24 +1021,16 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -3265,196 +1041,17 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "client_username": schema.StringAttribute{ - Description: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", - MarkdownDescription: "ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.", + "server_username": schema.StringAttribute{ + Description: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", + MarkdownDescription: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", Required: false, Optional: true, Computed: false, }, - "delete_default_admin": schema.BoolAttribute{ - Description: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", - MarkdownDescription: "DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "generate": schema.BoolAttribute{ - Description: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", - MarkdownDescription: "Generate defies whether the operator should generate users and grants for MaxScale to work. It only supports MariaDBs specified via spec.mariaDbRef.", - Required: false, - Optional: true, - Computed: false, - }, - - "metrics_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "metrics_username": schema.StringAttribute{ - Description: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", - MarkdownDescription: "MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "monitor_max_connections": schema.Int64Attribute{ - Description: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "MonitorMaxConnections defines the maximum number of connections that the monitor can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - Required: false, - Optional: true, - Computed: false, - }, - - "monitor_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "monitor_username": schema.StringAttribute{ - Description: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", - MarkdownDescription: "MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "server_max_connections": schema.Int64Attribute{ - Description: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "ServerMaxConnections defines the maximum number of connections that the server can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - Required: false, - Optional: true, - Computed: false, - }, - - "server_password_secret_key_ref": schema.SingleNestedAttribute{ - Description: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - MarkdownDescription: "ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", - Attributes: map[string]schema.Attribute{ - "generate": schema.BoolAttribute{ - Description: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - MarkdownDescription: "Generate indicates whether the Secret should be generated if the Secret referenced is not present.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "server_username": schema.StringAttribute{ - Description: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", - MarkdownDescription: "ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "sync_max_connections": schema.Int64Attribute{ - Description: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", - MarkdownDescription: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + "sync_max_connections": schema.Int64Attribute{ + Description: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", + MarkdownDescription: "SyncMaxConnections defines the maximum number of connections that the sync can establish. If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections. It defaults to 30 times the number of MaxScale replicas.", Required: false, Optional: true, Computed: false, @@ -3473,24 +1070,16 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -3574,88 +1163,14 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data MarkdownDescription: "VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.", Attributes: map[string]schema.Attribute{ "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + Description: "", + MarkdownDescription: "", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "metadata": schema.SingleNestedAttribute{ Description: "Metadata to be added to the PVC metadata.", MarkdownDescription: "Metadata to be added to the PVC metadata.", @@ -3684,8 +1199,8 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + Description: "VolumeResourceRequirements describes the storage resource requirements for a volume.", + MarkdownDescription: "VolumeResourceRequirements describes the storage resource requirements for a volume.", Attributes: map[string]schema.Attribute{ "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -3711,8 +1226,8 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -3765,32 +1280,8 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -3979,40 +1470,32 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#envvarsource-v1-core.", Attributes: map[string]schema.Attribute{ "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#configmapkeyselector-v1-core.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -4024,53 +1507,20 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectfieldselector-v1-core.", Attributes: map[string]schema.Attribute{ "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -4082,28 +1532,20 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#secretkeyselector-v1-core.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -4131,20 +1573,12 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -4156,28 +1590,20 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data }, "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#localobjectreference-v1-core.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -4307,8 +1733,8 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -4347,10043 +1773,195 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "init_containers": schema.ListNestedAttribute{ - Description: "InitContainers to be used in the Pod.", - MarkdownDescription: "InitContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "kubernetes_service": schema.SingleNestedAttribute{ + Description: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", + MarkdownDescription: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", + Attributes: map[string]schema.Attribute{ + "allocate_load_balancer_node_ports": schema.BoolAttribute{ + Description: "AllocateLoadBalancerNodePorts Service field.", + MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, + "external_traffic_policy": schema.StringAttribute{ + Description: "ExternalTrafficPolicy Service field.", + MarkdownDescription: "ExternalTrafficPolicy Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "load_balancer_ip": schema.StringAttribute{ + Description: "LoadBalancerIP Service field.", + MarkdownDescription: "LoadBalancerIP Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, + "load_balancer_source_ranges": schema.ListAttribute{ + Description: "LoadBalancerSourceRanges Service field.", + MarkdownDescription: "LoadBalancerSourceRanges Service field.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "metadata": schema.SingleNestedAttribute{ + Description: "Metadata to be added to the Service metadata.", + MarkdownDescription: "Metadata to be added to the Service metadata.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, + "session_affinity": schema.StringAttribute{ + Description: "SessionAffinity Service field.", + MarkdownDescription: "SessionAffinity Service field.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, + "liveness_probe": schema.SingleNestedAttribute{ + Description: "LivenessProbe to be used in the Container.", + MarkdownDescription: "LivenessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", + Required: false, + Optional: true, + Computed: false, }, }, + Required: false, + Optional: true, + Computed: false, + }, - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "kubernetes_service": schema.SingleNestedAttribute{ - Description: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", - MarkdownDescription: "KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.", - Attributes: map[string]schema.Attribute{ - "allocate_load_balancer_node_ports": schema.BoolAttribute{ - Description: "AllocateLoadBalancerNodePorts Service field.", - MarkdownDescription: "AllocateLoadBalancerNodePorts Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "external_traffic_policy": schema.StringAttribute{ - Description: "ExternalTrafficPolicy Service field.", - MarkdownDescription: "ExternalTrafficPolicy Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_ip": schema.StringAttribute{ - Description: "LoadBalancerIP Service field.", - MarkdownDescription: "LoadBalancerIP Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "load_balancer_source_ranges": schema.ListAttribute{ - Description: "LoadBalancerSourceRanges Service field.", - MarkdownDescription: "LoadBalancerSourceRanges Service field.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "metadata": schema.SingleNestedAttribute{ - Description: "Metadata to be added to the Service metadata.", - MarkdownDescription: "Metadata to be added to the Service metadata.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "session_affinity": schema.StringAttribute{ - Description: "SessionAffinity Service field.", - MarkdownDescription: "SessionAffinity Service field.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - MarkdownDescription: "Type is the Service type. One of 'ClusterIP', 'NodePort' or 'LoadBalancer'. If not defined, it defaults to 'ClusterIP'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("ClusterIP", "NodePort", "LoadBalancer"), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "maria_db_ref": schema.SingleNestedAttribute{ - Description: "MariaDBRef is a reference to the MariaDB that MaxScale points to. It is used to initialize the servers field.", - MarkdownDescription: "MariaDBRef is a reference to the MariaDB that MaxScale points to. It is used to initialize the servers field.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - Required: false, - Optional: true, - Computed: false, - }, - - "wait_for_it": schema.BoolAttribute{ - Description: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", - MarkdownDescription: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "metrics": schema.SingleNestedAttribute{ - Description: "Metrics configures metrics and how to scrape them.", - MarkdownDescription: "Metrics configures metrics and how to scrape them.", - Attributes: map[string]schema.Attribute{ - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable Metrics", - MarkdownDescription: "Enabled is a flag to enable Metrics", - Required: false, - Optional: true, - Computed: false, - }, - - "exporter": schema.SingleNestedAttribute{ - Description: "Exporter defines the metrics exporter container.", - MarkdownDescription: "Exporter defines the metrics exporter container.", - Attributes: map[string]schema.Attribute{ - "affinity": schema.SingleNestedAttribute{ - Description: "Affinity to be used in the Pod.", - MarkdownDescription: "Affinity to be used in the Pod.", - Attributes: map[string]schema.Attribute{ - "anti_affinity_enabled": schema.BoolAttribute{ - Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", - MarkdownDescription: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "image_pull_secrets": schema.ListNestedAttribute{ - Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "init_containers": schema.ListNestedAttribute{ - Description: "InitContainers to be used in the Pod.", - MarkdownDescription: "InitContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "node_selector": schema.MapAttribute{ - Description: "NodeSelector to be used in the Pod.", - MarkdownDescription: "NodeSelector to be used in the Pod.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_metadata": schema.SingleNestedAttribute{ - Description: "PodMetadata defines extra metadata for the Pod.", - MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds pod-level security attributes and common container settings.", - MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", - Attributes: map[string]schema.Attribute{ - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group": schema.Int64Attribute{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups_policy": schema.StringAttribute{ - Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "sysctls": schema.ListNestedAttribute{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of a property to set", - MarkdownDescription: "Name of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value of a property to set", - MarkdownDescription: "Value of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port where the exporter will be listening for connections.", - MarkdownDescription: "Port where the exporter will be listening for connections.", - Required: false, - Optional: true, - Computed: false, - }, - - "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName to be used in the Pod.", - MarkdownDescription: "PriorityClassName to be used in the Pod.", - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "sidecar_containers": schema.ListNestedAttribute{ - Description: "SidecarContainers to be used in the Pod.", - MarkdownDescription: "SidecarContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "tolerations": schema.ListNestedAttribute{ - Description: "Tolerations to be used in the Pod.", - MarkdownDescription: "Tolerations to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "effect": schema.StringAttribute{ - Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - Required: false, - Optional: true, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - Required: false, - Optional: true, - Computed: false, - }, - - "toleration_seconds": schema.Int64Attribute{ - Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - Required: false, - Optional: true, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_spread_constraints": schema.ListNestedAttribute{ - Description: "TopologySpreadConstraints to be used in the Pod.", - MarkdownDescription: "TopologySpreadConstraints to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - MarkdownDescription: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "max_skew": schema.Int64Attribute{ - Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - MarkdownDescription: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - - "min_domains": schema.Int64Attribute{ - Description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - MarkdownDescription: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity_policy": schema.StringAttribute{ - Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_taints_policy": schema.StringAttribute{ - Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - MarkdownDescription: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, - - "when_unsatisfiable": schema.StringAttribute{ - Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - MarkdownDescription: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volumes": schema.ListNestedAttribute{ - Description: "Volumes to be used in the Pod.", - MarkdownDescription: "Volumes to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, - - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, - - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, - - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, - - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, - - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, - - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, - - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, - - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, - - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, - - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, - - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: true, - Optional: false, - Computed: false, - }, - - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, - - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, - - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, - - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Required: true, - Optional: false, - Computed: false, - }, - - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", - Required: false, - Optional: true, - Computed: false, - }, - - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: true, - Optional: false, - Computed: false, - }, - - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - Required: false, - Optional: true, - Computed: false, - }, - - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", - Required: true, - Optional: false, - Computed: false, - }, - - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - Required: false, - Optional: true, - Computed: false, - }, - - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Required: false, - Optional: true, - Computed: false, - }, - - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_monitor": schema.SingleNestedAttribute{ - Description: "ServiceMonitor defines the ServiceMonior object.", - MarkdownDescription: "ServiceMonitor defines the ServiceMonior object.", - Attributes: map[string]schema.Attribute{ - "interval": schema.StringAttribute{ - Description: "Interval for scraping metrics.", - MarkdownDescription: "Interval for scraping metrics.", - Required: false, - Optional: true, - Computed: false, - }, - - "job_label": schema.StringAttribute{ - Description: "JobLabel to add to the ServiceMonitor object.", - MarkdownDescription: "JobLabel to add to the ServiceMonitor object.", - Required: false, - Optional: true, - Computed: false, - }, - - "prometheus_release": schema.StringAttribute{ - Description: "PrometheusRelease is the release label to add to the ServiceMonitor object.", - MarkdownDescription: "PrometheusRelease is the release label to add to the ServiceMonitor object.", - Required: false, - Optional: true, - Computed: false, - }, - - "scrape_timeout": schema.StringAttribute{ - Description: "ScrapeTimeout defines the timeout for scraping metrics.", - MarkdownDescription: "ScrapeTimeout defines the timeout for scraping metrics.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "monitor": schema.SingleNestedAttribute{ - Description: "Monitor monitors MariaDB server instances. It is required if 'spec.mariaDbRef' is not provided.", - MarkdownDescription: "Monitor monitors MariaDB server instances. It is required if 'spec.mariaDbRef' is not provided.", - Attributes: map[string]schema.Attribute{ - "cooperative_monitoring": schema.StringAttribute{ - Description: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", - MarkdownDescription: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("majority_of_all", "majority_of_running"), - }, - }, - - "interval": schema.StringAttribute{ - Description: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", - MarkdownDescription: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "module": schema.StringAttribute{ - Description: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", - MarkdownDescription: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the identifier of the monitor. It is defaulted if not provided.", - MarkdownDescription: "Name is the identifier of the monitor. It is defaulted if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", - MarkdownDescription: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "node_selector": schema.MapAttribute{ - Description: "NodeSelector to be used in the Pod.", - MarkdownDescription: "NodeSelector to be used in the Pod.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_disruption_budget": schema.SingleNestedAttribute{ - Description: "PodDisruptionBudget defines the budget for replica availability.", - MarkdownDescription: "PodDisruptionBudget defines the budget for replica availability.", - Attributes: map[string]schema.Attribute{ - "max_unavailable": schema.StringAttribute{ - Description: "MaxUnavailable defines the number of maximum unavailable Pods.", - MarkdownDescription: "MaxUnavailable defines the number of maximum unavailable Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "min_available": schema.StringAttribute{ - Description: "MinAvailable defines the number of minimum available Pods.", - MarkdownDescription: "MinAvailable defines the number of minimum available Pods.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_metadata": schema.SingleNestedAttribute{ - Description: "PodMetadata defines extra metadata for the Pod.", - MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds pod-level security attributes and common container settings.", - MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", - Attributes: map[string]schema.Attribute{ - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group": schema.Int64Attribute{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups_policy": schema.StringAttribute{ - Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "sysctls": schema.ListNestedAttribute{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of a property to set", - MarkdownDescription: "Name of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value of a property to set", - MarkdownDescription: "Value of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName to be used in the Pod.", - MarkdownDescription: "PriorityClassName to be used in the Pod.", - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "replicas": schema.Int64Attribute{ - Description: "Replicas indicates the number of desired instances.", - MarkdownDescription: "Replicas indicates the number of desired instances.", - Required: false, - Optional: true, - Computed: false, - }, - - "requeue_interval": schema.StringAttribute{ - Description: "RequeueInterval is used to perform requeue reconciliations. If not defined, it defaults to 10s.", - MarkdownDescription: "RequeueInterval is used to perform requeue reconciliations. If not defined, it defaults to 10s.", - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "servers": schema.ListNestedAttribute{ - Description: "Servers are the MariaDB servers to forward traffic to. It is required if 'spec.mariaDbRef' is not provided.", - MarkdownDescription: "Servers are the MariaDB servers to forward traffic to. It is required if 'spec.mariaDbRef' is not provided.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "address": schema.StringAttribute{ - Description: "Address is the network address of the MariaDB server.", - MarkdownDescription: "Address is the network address of the MariaDB server.", - Required: true, - Optional: false, - Computed: false, - }, - - "maintenance": schema.BoolAttribute{ - Description: "Maintenance indicates whether the server is in maintenance mode.", - MarkdownDescription: "Maintenance indicates whether the server is in maintenance mode.", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the identifier of the MariaDB server.", - MarkdownDescription: "Name is the identifier of the MariaDB server.", - Required: true, - Optional: false, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params defines extra parameters to pass to the server. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#server_1.", - MarkdownDescription: "Params defines extra parameters to pass to the server. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#server_1.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port is the network port of the MariaDB server. If not provided, it defaults to 3306.", - MarkdownDescription: "Port is the network port of the MariaDB server. If not provided, it defaults to 3306.", - Required: false, - Optional: true, - Computed: false, - }, - - "protocol": schema.StringAttribute{ - Description: "Protocol is the MaxScale protocol to use when communicating with this MariaDB server. If not provided, it defaults to MariaDBBackend.", - MarkdownDescription: "Protocol is the MaxScale protocol to use when communicating with this MariaDB server. If not provided, it defaults to MariaDBBackend.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "services": schema.ListNestedAttribute{ - Description: "Services define how the traffic is forwarded to the MariaDB servers. It is defaulted if not provided.", - MarkdownDescription: "Services define how the traffic is forwarded to the MariaDB servers. It is defaulted if not provided.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "listener": schema.SingleNestedAttribute{ - Description: "MaxScaleListener defines how the MaxScale server will listen for connections.", - MarkdownDescription: "MaxScaleListener defines how the MaxScale server will listen for connections.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name is the identifier of the listener. It is defaulted if not provided", - MarkdownDescription: "Name is the identifier of the listener. It is defaulted if not provided", - Required: false, - Optional: true, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", - MarkdownDescription: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.Int64Attribute{ - Description: "Port is the network port where the MaxScale server will listen.", - MarkdownDescription: "Port is the network port where the MaxScale server will listen.", - Required: true, - Optional: false, - Computed: false, - }, - - "protocol": schema.StringAttribute{ - Description: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", - MarkdownDescription: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", - Required: false, - Optional: true, - Computed: false, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the identifier of the MaxScale service.", - MarkdownDescription: "Name is the identifier of the MaxScale service.", - Required: true, - Optional: false, - Computed: false, - }, - - "params": schema.MapAttribute{ - Description: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", - MarkdownDescription: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "router": schema.StringAttribute{ - Description: "Router is the type of router to use.", - MarkdownDescription: "Router is the type of router to use.", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("readwritesplit", "readconnroute"), - }, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "sidecar_containers": schema.ListNestedAttribute{ - Description: "SidecarContainers to be used in the Pod.", - MarkdownDescription: "SidecarContainers to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "command": schema.ListAttribute{ - Description: "Command to be used in the Container.", - MarkdownDescription: "Command to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "env": schema.ListNestedAttribute{ - Description: "Env represents the environment variables to be injected in a container.", - MarkdownDescription: "Env represents the environment variables to be injected in a container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - MarkdownDescription: "Name of the environment variable. Must be a C_IDENTIFIER.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - MarkdownDescription: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. '$$(VAR_NAME)' will produce the string literal '$(VAR_NAME)'. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to ''.", - Required: false, - Optional: true, - Computed: false, - }, - - "value_from": schema.SingleNestedAttribute{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - MarkdownDescription: "Source for the environment variable's value. Cannot be used if value is not empty.", - Attributes: map[string]schema.Attribute{ - "config_map_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a ConfigMap.", - MarkdownDescription: "Selects a key of a ConfigMap.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "field_ref": schema.SingleNestedAttribute{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - MarkdownDescription: "Selects a field of the pod: supports metadata.name, metadata.namespace, 'metadata.labels['']', 'metadata.annotations['']', spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret_key_ref": schema.SingleNestedAttribute{ - Description: "Selects a key of a secret in the pod's namespace", - MarkdownDescription: "Selects a key of a secret in the pod's namespace", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "env_from": schema.ListNestedAttribute{ - Description: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - MarkdownDescription: "EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "config_map_ref": schema.SingleNestedAttribute{ - Description: "The ConfigMap to select from", - MarkdownDescription: "The ConfigMap to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap must be defined", - MarkdownDescription: "Specify whether the ConfigMap must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - MarkdownDescription: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "The Secret to select from", - MarkdownDescription: "The Secret to select from", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret must be defined", - MarkdownDescription: "Specify whether the Secret must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.StringAttribute{ - Description: "Image name to be used by the MariaDB instances. The supported format is ':'.", - MarkdownDescription: "Image name to be used by the MariaDB instances. The supported format is ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "image_pull_policy": schema.StringAttribute{ - Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "Never", "IfNotPresent"), - }, - }, - - "liveness_probe": schema.SingleNestedAttribute{ - Description: "LivenessProbe to be used in the Container.", - MarkdownDescription: "LivenessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "readiness_probe": schema.SingleNestedAttribute{ - Description: "ReadinessProbe to be used in the Container.", - MarkdownDescription: "ReadinessProbe to be used in the Container.", - Attributes: map[string]schema.Attribute{ - "exec": schema.SingleNestedAttribute{ - Description: "Exec specifies the action to take.", - MarkdownDescription: "Exec specifies the action to take.", - Attributes: map[string]schema.Attribute{ - "command": schema.ListAttribute{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - MarkdownDescription: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "failure_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "grpc": schema.SingleNestedAttribute{ - Description: "GRPC specifies an action involving a GRPC port.", - MarkdownDescription: "GRPC specifies an action involving a GRPC port.", - Attributes: map[string]schema.Attribute{ - "port": schema.Int64Attribute{ - Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - MarkdownDescription: "Port number of the gRPC service. Number must be in the range 1 to 65535.", - Required: true, - Optional: false, - Computed: false, - }, - - "service": schema.StringAttribute{ - Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - MarkdownDescription: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). If this is not specified, the default behavior is defined by gRPC.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "http_get": schema.SingleNestedAttribute{ - Description: "HTTPGet specifies the http request to perform.", - MarkdownDescription: "HTTPGet specifies the http request to perform.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - MarkdownDescription: "Host name to connect to, defaults to the pod IP. You probably want to set 'Host' in httpHeaders instead.", - Required: false, - Optional: true, - Computed: false, - }, - - "http_headers": schema.ListNestedAttribute{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - MarkdownDescription: "Custom headers to set in the request. HTTP allows repeated headers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - MarkdownDescription: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "The header field value", - MarkdownDescription: "The header field value", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Path to access on the HTTP server.", - MarkdownDescription: "Path to access on the HTTP server.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - - "scheme": schema.StringAttribute{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - MarkdownDescription: "Scheme to use for connecting to the host. Defaults to HTTP.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "initial_delay_seconds": schema.Int64Attribute{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - - "period_seconds": schema.Int64Attribute{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - MarkdownDescription: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "success_threshold": schema.Int64Attribute{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - MarkdownDescription: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Required: false, - Optional: true, - Computed: false, - }, - - "tcp_socket": schema.SingleNestedAttribute{ - Description: "TCPSocket specifies an action involving a TCP port.", - MarkdownDescription: "TCPSocket specifies an action involving a TCP port.", - Attributes: map[string]schema.Attribute{ - "host": schema.StringAttribute{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - MarkdownDescription: "Optional: Host name to connect to, defaults to the pod IP.", - Required: false, - Optional: true, - Computed: false, - }, - - "port": schema.StringAttribute{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - MarkdownDescription: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - MarkdownDescription: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", - Required: false, - Optional: true, - Computed: false, - }, - - "timeout_seconds": schema.Int64Attribute{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - MarkdownDescription: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, - - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "suspend": schema.BoolAttribute{ - Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", - Required: false, - Optional: true, - Computed: false, - }, - - "tolerations": schema.ListNestedAttribute{ - Description: "Tolerations to be used in the Pod.", - MarkdownDescription: "Tolerations to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "effect": schema.StringAttribute{ - Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - Required: false, - Optional: true, - Computed: false, - }, - "key": schema.StringAttribute{ - Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - Required: false, - Optional: true, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - Required: false, - Optional: true, - Computed: false, - }, - - "toleration_seconds": schema.Int64Attribute{ - Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - Required: false, - Optional: true, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - Required: false, - Optional: true, - Computed: false, - }, + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_spread_constraints": schema.ListNestedAttribute{ - Description: "TopologySpreadConstraints to be used in the Pod.", - MarkdownDescription: "TopologySpreadConstraints to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - MarkdownDescription: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "max_skew": schema.Int64Attribute{ - Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - MarkdownDescription: "MaxSkew describes the degree to which pods may be unevenly distributed. When 'whenUnsatisfiable=DoNotSchedule', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When 'whenUnsatisfiable=ScheduleAnyway', it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - - "min_domains": schema.Int64Attribute{ - Description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - MarkdownDescription: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats 'global minimum' as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so 'global minimum' is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_affinity_policy": schema.StringAttribute{ - Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_taints_policy": schema.StringAttribute{ - Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - MarkdownDescription: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", - Required: false, - Optional: true, - Computed: false, - }, - "topology_key": schema.StringAttribute{ - Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - MarkdownDescription: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a 'bucket', and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is 'kubernetes.io/hostname', each Node is a domain of that topology. And, if TopologyKey is 'topology.kubernetes.io/zone', each zone is a domain of that topology. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, - - "when_unsatisfiable": schema.StringAttribute{ - Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - MarkdownDescription: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered 'Unsatisfiable' for an incoming pod if and only if every possible node assignment for that pod would violate 'MaxSkew' on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - Required: true, - Optional: false, - Computed: false, - }, + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -14391,108 +1969,32 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "update_strategy": schema.SingleNestedAttribute{ - Description: "UpdateStrategy defines the update strategy for the StatefulSet object.", - MarkdownDescription: "UpdateStrategy defines the update strategy for the StatefulSet object.", + "maria_db_ref": schema.SingleNestedAttribute{ + Description: "MariaDBRef is a reference to the MariaDB that MaxScale points to. It is used to initialize the servers field.", + MarkdownDescription: "MariaDBRef is a reference to the MariaDB that MaxScale points to. It is used to initialize the servers field.", Attributes: map[string]schema.Attribute{ - "rolling_update": schema.SingleNestedAttribute{ - Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - MarkdownDescription: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - Attributes: map[string]schema.Attribute{ - "max_unavailable": schema.StringAttribute{ - Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", - MarkdownDescription: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", - MarkdownDescription: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - MarkdownDescription: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts to be used in the Container.", - MarkdownDescription: "VolumeMounts to be used in the Container.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "mount_path": schema.StringAttribute{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Required: true, - Optional: false, - Computed: false, - }, - - "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "This must match the Name of a Volume.", - MarkdownDescription: "This must match the Name of a Volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "recursive_read_only": schema.StringAttribute{ - Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", - Required: false, - Optional: true, - Computed: false, - }, - "sub_path": schema.StringAttribute{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", - Required: false, - Optional: true, - Computed: false, - }, + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "sub_path_expr": schema.StringAttribute{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Required: false, - Optional: true, - Computed: false, - }, + "wait_for_it": schema.BoolAttribute{ + Description: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", + MarkdownDescription: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", + Required: false, + Optional: true, + Computed: false, }, }, Required: false, @@ -14500,1914 +2002,1505 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "volumes": schema.ListNestedAttribute{ - Description: "Volumes to be used in the Pod.", - MarkdownDescription: "Volumes to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, - - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, + "metrics": schema.SingleNestedAttribute{ + Description: "Metrics configures metrics and how to scrape them.", + MarkdownDescription: "Metrics configures metrics and how to scrape them.", + Attributes: map[string]schema.Attribute{ + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable Metrics", + MarkdownDescription: "Enabled is a flag to enable Metrics", + Required: false, + Optional: true, + Computed: false, + }, - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, + "exporter": schema.SingleNestedAttribute{ + Description: "Exporter defines the metrics exporter container.", + MarkdownDescription: "Exporter defines the metrics exporter container.", + Attributes: map[string]schema.Attribute{ + "affinity": schema.SingleNestedAttribute{ + Description: "Affinity to be used in the Pod.", + MarkdownDescription: "Affinity to be used in the Pod.", + Attributes: map[string]schema.Attribute{ + "anti_affinity_enabled": schema.BoolAttribute{ + Description: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + MarkdownDescription: "AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA. Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + Attributes: map[string]schema.Attribute{ + "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "weight": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, + "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, + "image": schema.StringAttribute{ + Description: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", + MarkdownDescription: "Image name to be used as metrics exporter. The supported format is ':'. Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, + "image_pull_policy": schema.StringAttribute{ + Description: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + MarkdownDescription: "ImagePullPolicy is the image pull policy. One of 'Always', 'Never' or 'IfNotPresent'. If not defined, it defaults to 'IfNotPresent'.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "Never", "IfNotPresent"), }, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, + "node_selector": schema.MapAttribute{ + Description: "NodeSelector to be used in the Pod.", + MarkdownDescription: "NodeSelector to be used in the Pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata defines extra metadata for the Pod.", + MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ + "pod_security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", + Attributes: map[string]schema.Attribute{ + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", Required: false, Optional: true, Computed: false, }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", + "type": schema.StringAttribute{ + Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", Required: true, Optional: false, Computed: false, }, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, + "fs_group": schema.Int64Attribute{ + Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "fs_group_change_policy": schema.StringAttribute{ + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ + "se_linux_options": schema.SingleNestedAttribute{ + Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, + "level": schema.StringAttribute{ + Description: "Level is SELinux level label that applies to the container.", + MarkdownDescription: "Level is SELinux level label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "role": schema.StringAttribute{ + Description: "Role is a SELinux role label that applies to the container.", + MarkdownDescription: "Role is a SELinux role label that applies to the container.", + Required: false, + Optional: true, + Computed: false, }, - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": schema.StringAttribute{ + Description: "Type is a SELinux type label that applies to the container.", + MarkdownDescription: "Type is a SELinux type label that applies to the container.", Required: false, Optional: true, Computed: false, }, - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, + "user": schema.StringAttribute{ + Description: "User is a SELinux user label that applies to the container.", + MarkdownDescription: "User is a SELinux user label that applies to the container.", + Required: false, + Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "type": schema.StringAttribute{ + Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + Required: true, + Optional: false, + Computed: false, }, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "supplemental_groups": schema.ListAttribute{ + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", + "sysctls": schema.ListNestedAttribute{ + Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, + "name": schema.StringAttribute{ + Description: "Name of a property to set", + MarkdownDescription: "Name of a property to set", + Required: true, + Optional: false, Computed: false, }, - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, + "value": schema.StringAttribute{ + Description: "Value of a property to set", + MarkdownDescription: "Value of a property to set", + Required: true, + Optional: false, Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, + "windows_options": schema.SingleNestedAttribute{ + Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + Attributes: map[string]schema.Attribute{ + "gmsa_credential_spec": schema.StringAttribute{ + Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, + "host_process": schema.BoolAttribute{ + Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user_name": schema.StringAttribute{ + Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, }, - Required: true, - Optional: false, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port where the exporter will be listening for connections.", + MarkdownDescription: "Port where the exporter will be listening for connections.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName to be used in the Pod.", + MarkdownDescription: "PriorityClassName to be used in the Pod.", + Required: false, + Optional: true, + Computed: false, + }, - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", + "tolerations": schema.ListNestedAttribute{ + Description: "Tolerations to be used in the Pod.", + MarkdownDescription: "Tolerations to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", Required: false, Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, - - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, }, + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, - - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, - - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, + "service_monitor": schema.SingleNestedAttribute{ + Description: "ServiceMonitor defines the ServiceMonior object.", + MarkdownDescription: "ServiceMonitor defines the ServiceMonior object.", + Attributes: map[string]schema.Attribute{ + "interval": schema.StringAttribute{ + Description: "Interval for scraping metrics.", + MarkdownDescription: "Interval for scraping metrics.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, + "job_label": schema.StringAttribute{ + Description: "JobLabel to add to the ServiceMonitor object.", + MarkdownDescription: "JobLabel to add to the ServiceMonitor object.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, + "prometheus_release": schema.StringAttribute{ + Description: "PrometheusRelease is the release label to add to the ServiceMonitor object.", + MarkdownDescription: "PrometheusRelease is the release label to add to the ServiceMonitor object.", + Required: false, + Optional: true, + Computed: false, + }, - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, + "scrape_timeout": schema.StringAttribute{ + Description: "ScrapeTimeout defines the timeout for scraping metrics.", + MarkdownDescription: "ScrapeTimeout defines the timeout for scraping metrics.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, - - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "monitor": schema.SingleNestedAttribute{ + Description: "Monitor monitors MariaDB server instances. It is required if 'spec.mariaDbRef' is not provided.", + MarkdownDescription: "Monitor monitors MariaDB server instances. It is required if 'spec.mariaDbRef' is not provided.", + Attributes: map[string]schema.Attribute{ + "cooperative_monitoring": schema.StringAttribute{ + Description: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", + MarkdownDescription: "CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("majority_of_all", "majority_of_running"), }, + }, - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, + "interval": schema.StringAttribute{ + Description: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", + MarkdownDescription: "Interval used to monitor MariaDB servers. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, + "module": schema.StringAttribute{ + Description: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", + MarkdownDescription: "Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.", + Required: false, + Optional: true, + Computed: false, + }, - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "Name is the identifier of the monitor. It is defaulted if not provided.", + MarkdownDescription: "Name is the identifier of the monitor. It is defaulted if not provided.", + Required: false, + Optional: true, + Computed: false, + }, - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, + "params": schema.MapAttribute{ + Description: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", + MarkdownDescription: "Params defines extra parameters to pass to the monitor. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/. Monitor specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters. https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, + "node_selector": schema.MapAttribute{ + Description: "NodeSelector to be used in the Pod.", + MarkdownDescription: "NodeSelector to be used in the Pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, + "pod_disruption_budget": schema.SingleNestedAttribute{ + Description: "PodDisruptionBudget defines the budget for replica availability.", + MarkdownDescription: "PodDisruptionBudget defines the budget for replica availability.", + Attributes: map[string]schema.Attribute{ + "max_unavailable": schema.StringAttribute{ + Description: "MaxUnavailable defines the number of maximum unavailable Pods.", + MarkdownDescription: "MaxUnavailable defines the number of maximum unavailable Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "min_available": schema.StringAttribute{ + Description: "MinAvailable defines the number of minimum available Pods.", + MarkdownDescription: "MinAvailable defines the number of minimum available Pods.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata defines extra metadata for the Pod.", + MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "pod_security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", + Attributes: map[string]schema.Attribute{ + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "fs_group": schema.Int64Attribute{ + Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + + "fs_group_change_policy": schema.StringAttribute{ + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: true, - Optional: false, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, + "se_linux_options": schema.SingleNestedAttribute{ + Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "level": schema.StringAttribute{ + Description: "Level is SELinux level label that applies to the container.", + MarkdownDescription: "Level is SELinux level label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, + "role": schema.StringAttribute{ + Description: "Role is a SELinux role label that applies to the container.", + MarkdownDescription: "Role is a SELinux role label that applies to the container.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, - }, - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "Type is a SELinux type label that applies to the container.", + MarkdownDescription: "Type is a SELinux type label that applies to the container.", + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - Required: false, - Optional: true, - Computed: false, - }, + "user": schema.StringAttribute{ + Description: "User is a SELinux user label that applies to the container.", + MarkdownDescription: "User is a SELinux user label that applies to the container.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + Required: false, + Optional: true, + Computed: false, + }, - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, + "type": schema.StringAttribute{ + Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + Required: true, + Optional: false, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "supplemental_groups": schema.ListAttribute{ + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + + "sysctls": schema.ListNestedAttribute{ + Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of a property to set", + MarkdownDescription: "Name of a property to set", + Required: true, + Optional: false, Computed: false, }, - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", + "value": schema.StringAttribute{ + Description: "Value of a property to set", + MarkdownDescription: "Value of a property to set", Required: true, Optional: false, Computed: false, }, }, - Required: false, - Optional: true, - Computed: false, }, + Required: false, + Optional: true, + Computed: false, + }, - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "windows_options": schema.SingleNestedAttribute{ + Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + Attributes: map[string]schema.Attribute{ + "gmsa_credential_spec": schema.StringAttribute{ + Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "host_process": schema.BoolAttribute{ + Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user_name": schema.StringAttribute{ + Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName to be used in the Pod.", + MarkdownDescription: "PriorityClassName to be used in the Pod.", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, + "readiness_probe": schema.SingleNestedAttribute{ + Description: "ReadinessProbe to be used in the Container.", + MarkdownDescription: "ReadinessProbe to be used in the Container.", + Attributes: map[string]schema.Attribute{ + "exec": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#execaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "command": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, + "failure_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "http_get": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#httpgetaction-v1-core.", + Attributes: map[string]schema.Attribute{ + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "scheme": schema.StringAttribute{ + Description: "URIScheme identifies the scheme used for connection to a host for Get actions", + MarkdownDescription: "URIScheme identifies the scheme used for connection to a host for Get actions", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "initial_delay_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "period_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, + "success_threshold": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "timeout_seconds": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "replicas": schema.Int64Attribute{ + Description: "Replicas indicates the number of desired instances.", + MarkdownDescription: "Replicas indicates the number of desired instances.", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, + "requeue_interval": schema.StringAttribute{ + Description: "RequeueInterval is used to perform requeue reconciliations. If not defined, it defaults to 10s.", + MarkdownDescription: "RequeueInterval is used to perform requeue reconciliations. If not defined, it defaults to 10s.", + Required: false, + Optional: true, + Computed: false, + }, - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds security configuration that will be applied to a container.", + MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", + Attributes: map[string]schema.Attribute{ + "allow_privilege_escalation": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "capabilities": schema.SingleNestedAttribute{ + Description: "Adds and removes POSIX capabilities from running containers.", + MarkdownDescription: "Adds and removes POSIX capabilities from running containers.", + Attributes: map[string]schema.Attribute{ + "add": schema.ListAttribute{ + Description: "Added capabilities", + MarkdownDescription: "Added capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "drop": schema.ListAttribute{ + Description: "Removed capabilities", + MarkdownDescription: "Removed capabilities", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "privileged": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, + "read_only_root_filesystem": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "servers": schema.ListNestedAttribute{ + Description: "Servers are the MariaDB servers to forward traffic to. It is required if 'spec.mariaDbRef' is not provided.", + MarkdownDescription: "Servers are the MariaDB servers to forward traffic to. It is required if 'spec.mariaDbRef' is not provided.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "address": schema.StringAttribute{ + Description: "Address is the network address of the MariaDB server.", + MarkdownDescription: "Address is the network address of the MariaDB server.", + Required: true, + Optional: false, + Computed: false, }, - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, + "maintenance": schema.BoolAttribute{ + Description: "Maintenance indicates whether the server is in maintenance mode.", + MarkdownDescription: "Maintenance indicates whether the server is in maintenance mode.", + Required: false, + Optional: true, + Computed: false, + }, - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Required: true, - Optional: false, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "Name is the identifier of the MariaDB server.", + MarkdownDescription: "Name is the identifier of the MariaDB server.", + Required: true, + Optional: false, + Computed: false, + }, - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Required: false, - Optional: true, - Computed: false, - }, + "params": schema.MapAttribute{ + Description: "Params defines extra parameters to pass to the server. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#server_1.", + MarkdownDescription: "Params defines extra parameters to pass to the server. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#server_1.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", - Required: false, - Optional: true, - Computed: false, - }, + "port": schema.Int64Attribute{ + Description: "Port is the network port of the MariaDB server. If not provided, it defaults to 3306.", + MarkdownDescription: "Port is the network port of the MariaDB server. If not provided, it defaults to 3306.", + Required: false, + Optional: true, + Computed: false, + }, - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "protocol": schema.StringAttribute{ + Description: "Protocol is the MaxScale protocol to use when communicating with this MariaDB server. If not provided, it defaults to MariaDBBackend.", + MarkdownDescription: "Protocol is the MaxScale protocol to use when communicating with this MariaDB server. If not provided, it defaults to MariaDBBackend.", + Required: false, + Optional: true, + Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "service_account_name": schema.StringAttribute{ + Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + Required: false, + Optional: true, + Computed: false, + }, - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", + "services": schema.ListNestedAttribute{ + Description: "Services define how the traffic is forwarded to the MariaDB servers. It is defaulted if not provided.", + MarkdownDescription: "Services define how the traffic is forwarded to the MariaDB servers. It is defaulted if not provided.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "listener": schema.SingleNestedAttribute{ + Description: "MaxScaleListener defines how the MaxScale server will listen for connections.", + MarkdownDescription: "MaxScaleListener defines how the MaxScale server will listen for connections.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "name": schema.StringAttribute{ + Description: "Name is the identifier of the listener. It is defaulted if not provided", + MarkdownDescription: "Name is the identifier of the listener. It is defaulted if not provided", Required: false, Optional: true, Computed: false, }, - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: true, - Optional: false, - Computed: false, - }, - - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "params": schema.MapAttribute{ + Description: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", + MarkdownDescription: "Params defines extra parameters to pass to the listener. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, + "port": schema.Int64Attribute{ + Description: "Port is the network port where the MaxScale server will listen.", + MarkdownDescription: "Port is the network port where the MaxScale server will listen.", Required: true, Optional: false, Computed: false, }, - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "protocol": schema.StringAttribute{ + Description: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", + MarkdownDescription: "Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.", Required: false, Optional: true, Computed: false, }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", Required: false, Optional: true, Computed: false, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "Name is the identifier of the MaxScale service.", + MarkdownDescription: "Name is the identifier of the MaxScale service.", + Required: true, + Optional: false, + Computed: false, + }, - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", - Required: true, - Optional: false, - Computed: false, - }, + "params": schema.MapAttribute{ + Description: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", + MarkdownDescription: "Params defines extra parameters to pass to the service. Any parameter supported by MaxScale may be specified here. See reference: https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1. Router specific parameter are also suported: https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration. https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - Required: false, - Optional: true, - Computed: false, - }, + "router": schema.StringAttribute{ + Description: "Router is the type of router to use.", + MarkdownDescription: "Router is the type of router to use.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("readwritesplit", "readconnroute"), + }, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, + "suspend": schema.BoolAttribute{ + Description: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + MarkdownDescription: "Suspend indicates whether the current resource should be suspended or not. This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.", + Required: false, + Optional: true, + Computed: false, + }, - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - Required: false, - Optional: true, - Computed: false, - }, + "tolerations": schema.ListNestedAttribute{ + Description: "Tolerations to be used in the Pod.", + MarkdownDescription: "Tolerations to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - Required: false, - Optional: true, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "topology_spread_constraints": schema.ListNestedAttribute{ + Description: "TopologySpreadConstraints to be used in the Pod.", + MarkdownDescription: "TopologySpreadConstraints to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", Required: true, Optional: false, Computed: false, }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, Computed: false, }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, Computed: false, }, }, @@ -16417,17 +3510,10 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, @@ -16438,103 +3524,146 @@ func (r *K8SMariadbComMaxScaleV1Alpha1Manifest) Schema(_ context.Context, _ data Computed: false, }, - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "match_label_keys": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, + "max_skew": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "min_domains": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - Required: false, - Optional: true, - Computed: false, - }, + "node_affinity_policy": schema.StringAttribute{ + Description: "NodeInclusionPolicy defines the type of node inclusion policy", + MarkdownDescription: "NodeInclusionPolicy defines the type of node inclusion policy", + Required: false, + Optional: true, + Computed: false, + }, - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "node_taints_policy": schema.StringAttribute{ + Description: "NodeInclusionPolicy defines the type of node inclusion policy", + MarkdownDescription: "NodeInclusionPolicy defines the type of node inclusion policy", + Required: false, + Optional: true, + Computed: false, }, - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Required: false, - Optional: true, - Computed: false, - }, + "when_unsatisfiable": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - Required: false, - Optional: true, - Computed: false, - }, + "update_strategy": schema.SingleNestedAttribute{ + Description: "UpdateStrategy defines the update strategy for the StatefulSet object.", + MarkdownDescription: "UpdateStrategy defines the update strategy for the StatefulSet object.", + Attributes: map[string]schema.Attribute{ + "rolling_update": schema.SingleNestedAttribute{ + Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", + MarkdownDescription: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", + Attributes: map[string]schema.Attribute{ + "max_unavailable": schema.StringAttribute{ + Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", + MarkdownDescription: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.", + Required: false, + Optional: true, + Computed: false, + }, - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", - Required: true, - Optional: false, - Computed: false, - }, + "partition": schema.Int64Attribute{ + Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", + MarkdownDescription: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + MarkdownDescription: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "volume_mounts": schema.ListNestedAttribute{ + Description: "VolumeMounts to be used in the Container.", + MarkdownDescription: "VolumeMounts to be used in the Container.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "mount_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "This must match the Name of a Volume.", + MarkdownDescription: "This must match the Name of a Volume.", + Required: true, + Optional: false, + Computed: false, + }, + + "read_only": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "sub_path": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, }, }, }, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_restore_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_restore_v1alpha1_manifest.go index 4e0fb85ea..65deb054a 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_restore_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_restore_v1alpha1_manifest.go @@ -45,87 +45,7 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { Spec *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -136,18 +56,7 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -160,18 +69,7 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` @@ -190,14 +88,9 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { } `tfsdk:"inherit_metadata" json:"inheritMetadata,omitempty"` LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` PodMetadata *struct { @@ -239,75 +132,46 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` RestartPolicy *string `tfsdk:"restart_policy" json:"restartPolicy,omitempty"` S3 *struct { AccessKeyIdSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"access_key_id_secret_key_ref" json:"accessKeyIdSecretKeyRef,omitempty"` Bucket *string `tfsdk:"bucket" json:"bucket,omitempty"` Endpoint *string `tfsdk:"endpoint" json:"endpoint,omitempty"` Prefix *string `tfsdk:"prefix" json:"prefix,omitempty"` Region *string `tfsdk:"region" json:"region,omitempty"` SecretAccessKeySecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"secret_access_key_secret_key_ref" json:"secretAccessKeySecretKeyRef,omitempty"` SessionTokenSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"session_token_secret_key_ref" json:"sessionTokenSecretKeyRef,omitempty"` Tls *struct { CaSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"ca_secret_key_ref" json:"caSecretKeyRef,omitempty"` Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` } `tfsdk:"tls" json:"tls,omitempty"` } `tfsdk:"s3" json:"s3,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` TargetRecoveryTime *string `tfsdk:"target_recovery_time" json:"targetRecoveryTime,omitempty"` @@ -319,53 +183,6 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` Volume *struct { - AwsElasticBlockStore *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"aws_elastic_block_store" json:"awsElasticBlockStore,omitempty"` - AzureDisk *struct { - CachingMode *string `tfsdk:"caching_mode" json:"cachingMode,omitempty"` - DiskName *string `tfsdk:"disk_name" json:"diskName,omitempty"` - DiskURI *string `tfsdk:"disk_uri" json:"diskURI,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"azure_disk" json:"azureDisk,omitempty"` - AzureFile *struct { - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - ShareName *string `tfsdk:"share_name" json:"shareName,omitempty"` - } `tfsdk:"azure_file" json:"azureFile,omitempty"` - Cephfs *struct { - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretFile *string `tfsdk:"secret_file" json:"secretFile,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"cephfs" json:"cephfs,omitempty"` - Cinder *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"cinder" json:"cinder,omitempty"` - ConfigMap *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` Csi *struct { Driver *string `tfsdk:"driver" json:"driver,omitempty"` FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` @@ -375,120 +192,10 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` VolumeAttributes *map[string]string `tfsdk:"volume_attributes" json:"volumeAttributes,omitempty"` } `tfsdk:"csi" json:"csi,omitempty"` - DownwardAPI *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` EmptyDir *struct { Medium *string `tfsdk:"medium" json:"medium,omitempty"` SizeLimit *string `tfsdk:"size_limit" json:"sizeLimit,omitempty"` } `tfsdk:"empty_dir" json:"emptyDir,omitempty"` - Ephemeral *struct { - VolumeClaimTemplate *struct { - Metadata *map[string]string `tfsdk:"metadata" json:"metadata,omitempty"` - Spec *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - DataSource *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"data_source" json:"dataSource,omitempty"` - DataSourceRef *struct { - ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` - Resources *struct { - Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` - Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` - } `tfsdk:"resources" json:"resources,omitempty"` - Selector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"spec" json:"spec,omitempty"` - } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` - } `tfsdk:"ephemeral" json:"ephemeral,omitempty"` - Fc *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - TargetWWNs *[]string `tfsdk:"target_ww_ns" json:"targetWWNs,omitempty"` - Wwids *[]string `tfsdk:"wwids" json:"wwids,omitempty"` - } `tfsdk:"fc" json:"fc,omitempty"` - FlexVolume *struct { - Driver *string `tfsdk:"driver" json:"driver,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Options *map[string]string `tfsdk:"options" json:"options,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - } `tfsdk:"flex_volume" json:"flexVolume,omitempty"` - Flocker *struct { - DatasetName *string `tfsdk:"dataset_name" json:"datasetName,omitempty"` - DatasetUUID *string `tfsdk:"dataset_uuid" json:"datasetUUID,omitempty"` - } `tfsdk:"flocker" json:"flocker,omitempty"` - GcePersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Partition *int64 `tfsdk:"partition" json:"partition,omitempty"` - PdName *string `tfsdk:"pd_name" json:"pdName,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"gce_persistent_disk" json:"gcePersistentDisk,omitempty"` - GitRepo *struct { - Directory *string `tfsdk:"directory" json:"directory,omitempty"` - Repository *string `tfsdk:"repository" json:"repository,omitempty"` - Revision *string `tfsdk:"revision" json:"revision,omitempty"` - } `tfsdk:"git_repo" json:"gitRepo,omitempty"` - Glusterfs *struct { - Endpoints *string `tfsdk:"endpoints" json:"endpoints,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - } `tfsdk:"glusterfs" json:"glusterfs,omitempty"` - HostPath *struct { - Path *string `tfsdk:"path" json:"path,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"host_path" json:"hostPath,omitempty"` - Image *struct { - PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` - Reference *string `tfsdk:"reference" json:"reference,omitempty"` - } `tfsdk:"image" json:"image,omitempty"` - Iscsi *struct { - ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` - ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - InitiatorName *string `tfsdk:"initiator_name" json:"initiatorName,omitempty"` - Iqn *string `tfsdk:"iqn" json:"iqn,omitempty"` - IscsiInterface *string `tfsdk:"iscsi_interface" json:"iscsiInterface,omitempty"` - Lun *int64 `tfsdk:"lun" json:"lun,omitempty"` - Portals *[]string `tfsdk:"portals" json:"portals,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - TargetPortal *string `tfsdk:"target_portal" json:"targetPortal,omitempty"` - } `tfsdk:"iscsi" json:"iscsi,omitempty"` Nfs *struct { Path *string `tfsdk:"path" json:"path,omitempty"` ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` @@ -498,131 +205,6 @@ type K8SMariadbComRestoreV1Alpha1ManifestData struct { ClaimName *string `tfsdk:"claim_name" json:"claimName,omitempty"` ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` - PhotonPersistentDisk *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - PdID *string `tfsdk:"pd_id" json:"pdID,omitempty"` - } `tfsdk:"photon_persistent_disk" json:"photonPersistentDisk,omitempty"` - PortworxVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - VolumeID *string `tfsdk:"volume_id" json:"volumeID,omitempty"` - } `tfsdk:"portworx_volume" json:"portworxVolume,omitempty"` - Projected *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Sources *[]struct { - ClusterTrustBundle *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - SignerName *string `tfsdk:"signer_name" json:"signerName,omitempty"` - } `tfsdk:"cluster_trust_bundle" json:"clusterTrustBundle,omitempty"` - ConfigMap *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - DownwardAPI *struct { - Items *[]struct { - FieldRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - } `tfsdk:"field_ref" json:"fieldRef,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - ResourceFieldRef *struct { - ContainerName *string `tfsdk:"container_name" json:"containerName,omitempty"` - Divisor *string `tfsdk:"divisor" json:"divisor,omitempty"` - Resource *string `tfsdk:"resource" json:"resource,omitempty"` - } `tfsdk:"resource_field_ref" json:"resourceFieldRef,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - } `tfsdk:"downward_api" json:"downwardAPI,omitempty"` - Secret *struct { - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - ServiceAccountToken *struct { - Audience *string `tfsdk:"audience" json:"audience,omitempty"` - ExpirationSeconds *int64 `tfsdk:"expiration_seconds" json:"expirationSeconds,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"service_account_token" json:"serviceAccountToken,omitempty"` - } `tfsdk:"sources" json:"sources,omitempty"` - } `tfsdk:"projected" json:"projected,omitempty"` - Quobyte *struct { - Group *string `tfsdk:"group" json:"group,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - Registry *string `tfsdk:"registry" json:"registry,omitempty"` - Tenant *string `tfsdk:"tenant" json:"tenant,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - Volume *string `tfsdk:"volume" json:"volume,omitempty"` - } `tfsdk:"quobyte" json:"quobyte,omitempty"` - Rbd *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Image *string `tfsdk:"image" json:"image,omitempty"` - Keyring *string `tfsdk:"keyring" json:"keyring,omitempty"` - Monitors *[]string `tfsdk:"monitors" json:"monitors,omitempty"` - Pool *string `tfsdk:"pool" json:"pool,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"rbd" json:"rbd,omitempty"` - ScaleIO *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - Gateway *string `tfsdk:"gateway" json:"gateway,omitempty"` - ProtectionDomain *string `tfsdk:"protection_domain" json:"protectionDomain,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - SslEnabled *bool `tfsdk:"ssl_enabled" json:"sslEnabled,omitempty"` - StorageMode *string `tfsdk:"storage_mode" json:"storageMode,omitempty"` - StoragePool *string `tfsdk:"storage_pool" json:"storagePool,omitempty"` - System *string `tfsdk:"system" json:"system,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - } `tfsdk:"scale_io" json:"scaleIO,omitempty"` - Secret *struct { - DefaultMode *int64 `tfsdk:"default_mode" json:"defaultMode,omitempty"` - Items *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Mode *int64 `tfsdk:"mode" json:"mode,omitempty"` - Path *string `tfsdk:"path" json:"path,omitempty"` - } `tfsdk:"items" json:"items,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - Storageos *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SecretRef *struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"secret_ref" json:"secretRef,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` - VolumeNamespace *string `tfsdk:"volume_namespace" json:"volumeNamespace,omitempty"` - } `tfsdk:"storageos" json:"storageos,omitempty"` - VsphereVolume *struct { - FsType *string `tfsdk:"fs_type" json:"fsType,omitempty"` - StoragePolicyID *string `tfsdk:"storage_policy_id" json:"storagePolicyID,omitempty"` - StoragePolicyName *string `tfsdk:"storage_policy_name" json:"storagePolicyName,omitempty"` - VolumePath *string `tfsdk:"volume_path" json:"volumePath,omitempty"` - } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` } `tfsdk:"volume" json:"volume,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } @@ -716,90 +298,80 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", Attributes: map[string]schema.Attribute{ "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", + Description: "", + MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, }, + Required: false, + Optional: true, + Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, Required: false, Optional: true, Computed: false, }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, }, Required: true, Optional: false, @@ -807,8 +379,8 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas }, "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -820,39 +392,39 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ + "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", Required: true, Optional: false, Computed: false, }, "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", Required: true, Optional: false, Computed: false, }, "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", ElementType: types.StringType, Required: false, Optional: true, @@ -865,46 +437,27 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, }, + Required: false, + Optional: true, + Computed: false, + }, + + "topology_key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, }, - Required: true, - Optional: false, - Computed: false, }, }, Required: false, @@ -916,334 +469,199 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "args": schema.ListAttribute{ + Description: "Args to be used in the Container.", + MarkdownDescription: "Args to be used in the Container.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "backoff_limit": schema.Int64Attribute{ + Description: "BackoffLimit defines the maximum number of attempts to successfully perform a Backup.", + MarkdownDescription: "BackoffLimit defines the maximum number of attempts to successfully perform a Backup.", + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "backup_ref": schema.SingleNestedAttribute{ + Description: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", + MarkdownDescription: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "database": schema.StringAttribute{ + Description: "Database defines the logical database to be restored. If not provided, all databases available in the backup are restored. IMPORTANT: The database must previously exist.", + MarkdownDescription: "Database defines the logical database to be restored. If not provided, all databases available in the backup are restored. IMPORTANT: The database must previously exist.", + Required: false, + Optional: true, + Computed: false, + }, - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "inherit_metadata": schema.SingleNestedAttribute{ + Description: "InheritMetadata defines the metadata to be inherited by children resources.", + MarkdownDescription: "InheritMetadata defines the metadata to be inherited by children resources.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "log_level": schema.StringAttribute{ + Description: "LogLevel to be used n the Backup Job. It defaults to 'info'.", + MarkdownDescription: "LogLevel to be used n the Backup Job. It defaults to 'info'.", + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "maria_db_ref": schema.SingleNestedAttribute{ + Description: "MariaDBRef is a reference to a MariaDB object.", + MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "namespace": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "wait_for_it": schema.BoolAttribute{ + Description: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", + MarkdownDescription: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, + "node_selector": schema.MapAttribute{ + Description: "NodeSelector to be used in the Pod.", + MarkdownDescription: "NodeSelector to be used in the Pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata defines extra metadata for the Pod.", + MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations to be added to children resources.", + MarkdownDescription: "Annotations to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "labels": schema.MapAttribute{ + Description: "Labels to be added to children resources.", + MarkdownDescription: "Labels to be added to children resources.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + "pod_security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", + Attributes: map[string]schema.Attribute{ + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", + Required: false, + Optional: true, + Computed: false, + }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + "type": schema.StringAttribute{ + Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", + Required: true, + Optional: false, + Computed: false, }, }, Required: false, @@ -1251,3085 +669,187 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, + "fs_group": schema.Int64Attribute{ + Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "fs_group_change_policy": schema.StringAttribute{ + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "args": schema.ListAttribute{ - Description: "Args to be used in the Container.", - MarkdownDescription: "Args to be used in the Container.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "backoff_limit": schema.Int64Attribute{ - Description: "BackoffLimit defines the maximum number of attempts to successfully perform a Backup.", - MarkdownDescription: "BackoffLimit defines the maximum number of attempts to successfully perform a Backup.", - Required: false, - Optional: true, - Computed: false, - }, - - "backup_ref": schema.SingleNestedAttribute{ - Description: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", - MarkdownDescription: "BackupRef is a reference to a Backup object. It has priority over S3 and Volume.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "database": schema.StringAttribute{ - Description: "Database defines the logical database to be restored. If not provided, all databases available in the backup are restored. IMPORTANT: The database must previously exist.", - MarkdownDescription: "Database defines the logical database to be restored. If not provided, all databases available in the backup are restored. IMPORTANT: The database must previously exist.", - Required: false, - Optional: true, - Computed: false, - }, - - "image_pull_secrets": schema.ListNestedAttribute{ - Description: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - MarkdownDescription: "ImagePullSecrets is the list of pull Secrets to be used to pull the image.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "inherit_metadata": schema.SingleNestedAttribute{ - Description: "InheritMetadata defines the metadata to be inherited by children resources.", - MarkdownDescription: "InheritMetadata defines the metadata to be inherited by children resources.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "log_level": schema.StringAttribute{ - Description: "LogLevel to be used n the Backup Job. It defaults to 'info'.", - MarkdownDescription: "LogLevel to be used n the Backup Job. It defaults to 'info'.", - Required: false, - Optional: true, - Computed: false, - }, - - "maria_db_ref": schema.SingleNestedAttribute{ - Description: "MariaDBRef is a reference to a MariaDB object.", - MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - Required: false, - Optional: true, - Computed: false, - }, - - "wait_for_it": schema.BoolAttribute{ - Description: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", - MarkdownDescription: "WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "node_selector": schema.MapAttribute{ - Description: "NodeSelector to be used in the Pod.", - MarkdownDescription: "NodeSelector to be used in the Pod.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_metadata": schema.SingleNestedAttribute{ - Description: "PodMetadata defines extra metadata for the Pod.", - MarkdownDescription: "PodMetadata defines extra metadata for the Pod.", - Attributes: map[string]schema.Attribute{ - "annotations": schema.MapAttribute{ - Description: "Annotations to be added to children resources.", - MarkdownDescription: "Annotations to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "labels": schema.MapAttribute{ - Description: "Labels to be added to children resources.", - MarkdownDescription: "Labels to be added to children resources.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds pod-level security attributes and common container settings.", - MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings.", - Attributes: map[string]schema.Attribute{ - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group": schema.Int64Attribute{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are 'OnRootMismatch' and 'Always'. If not specified, 'Always' is used. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups_policy": schema.StringAttribute{ - Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "sysctls": schema.ListNestedAttribute{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of a property to set", - MarkdownDescription: "Name of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value of a property to set", - MarkdownDescription: "Value of a property to set", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName to be used in the Pod.", - MarkdownDescription: "PriorityClassName to be used in the Pod.", - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "Resouces describes the compute resource requirements.", - MarkdownDescription: "Resouces describes the compute resource requirements.", - Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "restart_policy": schema.StringAttribute{ - Description: "RestartPolicy to be added to the Backup Job.", - MarkdownDescription: "RestartPolicy to be added to the Backup Job.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - stringvalidator.OneOf("Always", "OnFailure", "Never"), - }, - }, - - "s3": schema.SingleNestedAttribute{ - Description: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", - MarkdownDescription: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", - Attributes: map[string]schema.Attribute{ - "access_key_id_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", - MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "bucket": schema.StringAttribute{ - Description: "Bucket is the name Name of the bucket to store backups.", - MarkdownDescription: "Bucket is the name Name of the bucket to store backups.", - Required: true, - Optional: false, - Computed: false, - }, - - "endpoint": schema.StringAttribute{ - Description: "Endpoint is the S3 API endpoint without scheme.", - MarkdownDescription: "Endpoint is the S3 API endpoint without scheme.", - Required: true, - Optional: false, - Computed: false, - }, - - "prefix": schema.StringAttribute{ - Description: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", - MarkdownDescription: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", - Required: false, - Optional: true, - Computed: false, - }, - - "region": schema.StringAttribute{ - Description: "Region is the S3 region name to use.", - MarkdownDescription: "Region is the S3 region name to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_access_key_secret_key_ref": schema.SingleNestedAttribute{ - Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", - MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "session_token_secret_key_ref": schema.SingleNestedAttribute{ - Description: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", - MarkdownDescription: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "tls": schema.SingleNestedAttribute{ - Description: "TLS provides the configuration required to establish TLS connections with S3.", - MarkdownDescription: "TLS provides the configuration required to establish TLS connections with S3.", - Attributes: map[string]schema.Attribute{ - "ca_secret_key_ref": schema.SingleNestedAttribute{ - Description: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", - MarkdownDescription: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "enabled": schema.BoolAttribute{ - Description: "Enabled is a flag to enable TLS.", - MarkdownDescription: "Enabled is a flag to enable TLS.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "security_context": schema.SingleNestedAttribute{ - Description: "SecurityContext holds security configuration that will be applied to a container.", - MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", - Attributes: map[string]schema.Attribute{ - "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "add": schema.ListAttribute{ - Description: "Added capabilities", - MarkdownDescription: "Added capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "drop": schema.ListAttribute{ - Description: "Removed capabilities", - MarkdownDescription: "Removed capabilities", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", - Required: false, - Optional: true, - Computed: false, - }, - - "target_recovery_time": schema.StringAttribute{ - Description: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", - MarkdownDescription: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", - Required: false, - Optional: true, - Computed: false, - Validators: []validator.String{ - validators.DateTime64Validator(), - }, - }, - - "tolerations": schema.ListNestedAttribute{ - Description: "Tolerations to be used in the Pod.", - MarkdownDescription: "Tolerations to be used in the Pod.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "effect": schema.StringAttribute{ - Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - Required: false, - Optional: true, - Computed: false, - }, - - "key": schema.StringAttribute{ - Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - Required: false, - Optional: true, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - Required: false, - Optional: true, - Computed: false, - }, - - "toleration_seconds": schema.Int64Attribute{ - Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - Required: false, - Optional: true, - Computed: false, - }, - - "value": schema.StringAttribute{ - Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume": schema.SingleNestedAttribute{ - Description: "Volume is a Kubernetes Volume object that contains a backup.", - MarkdownDescription: "Volume is a Kubernetes Volume object that contains a backup.", - Attributes: map[string]schema.Attribute{ - "aws_elastic_block_store": schema.SingleNestedAttribute{ - Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty).", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - MarkdownDescription: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_disk": schema.SingleNestedAttribute{ - Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - MarkdownDescription: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "caching_mode": schema.StringAttribute{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - MarkdownDescription: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", - Required: false, - Optional: true, - Computed: false, - }, - - "disk_name": schema.StringAttribute{ - Description: "diskName is the Name of the data disk in the blob storage", - MarkdownDescription: "diskName is the Name of the data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "disk_uri": schema.StringAttribute{ - Description: "diskURI is the URI of data disk in the blob storage", - MarkdownDescription: "diskURI is the URI of data disk in the blob storage", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - MarkdownDescription: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "azure_file": schema.SingleNestedAttribute{ - Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - MarkdownDescription: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Attributes: map[string]schema.Attribute{ - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of secret that contains Azure Storage Account Name and Key", - MarkdownDescription: "secretName is the name of secret that contains Azure Storage Account Name and Key", - Required: true, - Optional: false, - Computed: false, - }, - - "share_name": schema.StringAttribute{ - Description: "shareName is the azure share Name", - MarkdownDescription: "shareName is the azure share Name", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cephfs": schema.SingleNestedAttribute{ - Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - MarkdownDescription: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Attributes: map[string]schema.Attribute{ - "monitors": schema.ListAttribute{ - Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - MarkdownDescription: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_file": schema.StringAttribute{ - Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - MarkdownDescription: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "cinder": schema.SingleNestedAttribute{ - Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - MarkdownDescription: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap represents a configMap that should populate this volume", - MarkdownDescription: "configMap represents a configMap that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "csi": schema.SingleNestedAttribute{ - Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - MarkdownDescription: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Required: false, - Optional: true, - Computed: false, - }, - - "node_publish_secret_ref": schema.SingleNestedAttribute{ - Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes": schema.MapAttribute{ - Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI represents downward API about the pod that should populate this volume", - MarkdownDescription: "downwardAPI represents downward API about the pod that should populate this volume", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "items": schema.ListNestedAttribute{ - Description: "Items is a list of downward API volume file", - MarkdownDescription: "Items is a list of downward API volume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "empty_dir": schema.SingleNestedAttribute{ - Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Attributes: map[string]schema.Attribute{ - "medium": schema.StringAttribute{ - Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - - "size_limit": schema.StringAttribute{ - Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "ephemeral": schema.SingleNestedAttribute{ - Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - MarkdownDescription: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Attributes: map[string]schema.Attribute{ - "volume_claim_template": schema.SingleNestedAttribute{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - MarkdownDescription: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be '-' where '' is the name from the 'PodSpec.Volumes' array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.", - Attributes: map[string]schema.Attribute{ - "metadata": schema.MapAttribute{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - MarkdownDescription: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "spec": schema.SingleNestedAttribute{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - MarkdownDescription: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Attributes: map[string]schema.Attribute{ - "access_modes": schema.ListAttribute{ - Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source": schema.SingleNestedAttribute{ - Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "data_source_ref": schema.SingleNestedAttribute{ - Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Attributes: map[string]schema.Attribute{ - "api_group": schema.StringAttribute{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind is the type of resource being referenced", - MarkdownDescription: "Kind is the type of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name is the name of resource being referenced", - MarkdownDescription: "Name is the name of resource being referenced", - Required: true, - Optional: false, - Computed: false, - }, - - "namespace": schema.StringAttribute{ - Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "resources": schema.SingleNestedAttribute{ - Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Attributes: map[string]schema.Attribute{ - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "selector": schema.SingleNestedAttribute{ - Description: "selector is a label query over volumes to consider for binding.", - MarkdownDescription: "selector is a label query over volumes to consider for binding.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "storage_class_name": schema.StringAttribute{ - Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_attributes_class_name": schema.StringAttribute{ - Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_mode": schema.StringAttribute{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", - MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "fc": schema.SingleNestedAttribute{ - Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun is Optional: FC target lun number", - MarkdownDescription: "lun is Optional: FC target lun number", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "target_ww_ns": schema.ListAttribute{ - Description: "targetWWNs is Optional: FC target worldwide names (WWNs)", - MarkdownDescription: "targetWWNs is Optional: FC target worldwide names (WWNs)", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "wwids": schema.ListAttribute{ - Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - MarkdownDescription: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flex_volume": schema.SingleNestedAttribute{ - Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - MarkdownDescription: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Attributes: map[string]schema.Attribute{ - "driver": schema.StringAttribute{ - Description: "driver is the name of the driver to use for this volume.", - MarkdownDescription: "driver is the name of the driver to use for this volume.", - Required: true, - Optional: false, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. The default filesystem depends on FlexVolume script.", - Required: false, - Optional: true, - Computed: false, - }, - - "options": schema.MapAttribute{ - Description: "options is Optional: this field holds extra command options if any.", - MarkdownDescription: "options is Optional: this field holds extra command options if any.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "flocker": schema.SingleNestedAttribute{ - Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - MarkdownDescription: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Attributes: map[string]schema.Attribute{ - "dataset_name": schema.StringAttribute{ - Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - MarkdownDescription: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Required: false, - Optional: true, - Computed: false, - }, - - "dataset_uuid": schema.StringAttribute{ - Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - MarkdownDescription: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "gce_persistent_disk": schema.SingleNestedAttribute{ - Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "partition": schema.Int64Attribute{ - Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as '1'. Similarly, the volume partition for /dev/sda is '0' (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_name": schema.StringAttribute{ - Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "git_repo": schema.SingleNestedAttribute{ - Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - MarkdownDescription: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Attributes: map[string]schema.Attribute{ - "directory": schema.StringAttribute{ - Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - MarkdownDescription: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Required: false, - Optional: true, - Computed: false, - }, - - "repository": schema.StringAttribute{ - Description: "repository is the URL", - MarkdownDescription: "repository is the URL", - Required: true, - Optional: false, - Computed: false, - }, - - "revision": schema.StringAttribute{ - Description: "revision is the commit hash for the specified revision.", - MarkdownDescription: "revision is the commit hash for the specified revision.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "glusterfs": schema.SingleNestedAttribute{ - Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - MarkdownDescription: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Attributes: map[string]schema.Attribute{ - "endpoints": schema.StringAttribute{ - Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - MarkdownDescription: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: true, - Optional: false, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - MarkdownDescription: "type for HostPath Volume Defaults to '' More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "image": schema.SingleNestedAttribute{ - Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - MarkdownDescription: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.", - Attributes: map[string]schema.Attribute{ - "pull_policy": schema.StringAttribute{ - Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - MarkdownDescription: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", - Required: false, - Optional: true, - Computed: false, - }, - - "reference": schema.StringAttribute{ - Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - MarkdownDescription: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "iscsi": schema.SingleNestedAttribute{ - Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - MarkdownDescription: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Attributes: map[string]schema.Attribute{ - "chap_auth_discovery": schema.BoolAttribute{ - Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - MarkdownDescription: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "chap_auth_session": schema.BoolAttribute{ - Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - MarkdownDescription: "chapAuthSession defines whether support iSCSI Session CHAP authentication", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Required: false, - Optional: true, - Computed: false, - }, - - "initiator_name": schema.StringAttribute{ - Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - MarkdownDescription: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Required: false, - Optional: true, - Computed: false, - }, - - "iqn": schema.StringAttribute{ - Description: "iqn is the target iSCSI Qualified Name.", - MarkdownDescription: "iqn is the target iSCSI Qualified Name.", - Required: true, - Optional: false, - Computed: false, - }, - - "iscsi_interface": schema.StringAttribute{ - Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - MarkdownDescription: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Required: false, - Optional: true, - Computed: false, - }, - - "lun": schema.Int64Attribute{ - Description: "lun represents iSCSI Target Lun number.", - MarkdownDescription: "lun represents iSCSI Target Lun number.", - Required: true, - Optional: false, - Computed: false, - }, - - "portals": schema.ListAttribute{ - Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Required: false, - Optional: true, - Computed: false, - }, - - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "target_portal": schema.StringAttribute{ - Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - MarkdownDescription: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "nfs": schema.SingleNestedAttribute{ - Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Attributes: map[string]schema.Attribute{ - "path": schema.StringAttribute{ - Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: false, - Optional: true, - Computed: false, - }, - - "server": schema.StringAttribute{ - Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "persistent_volume_claim": schema.SingleNestedAttribute{ - Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Attributes: map[string]schema.Attribute{ - "claim_name": schema.StringAttribute{ - Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Required: true, - Optional: false, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "photon_persistent_disk": schema.SingleNestedAttribute{ - Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - MarkdownDescription: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "pd_id": schema.StringAttribute{ - Description: "pdID is the ID that identifies Photon Controller persistent disk", - MarkdownDescription: "pdID is the ID that identifies Photon Controller persistent disk", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "portworx_volume": schema.SingleNestedAttribute{ - Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - MarkdownDescription: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Required: false, - Optional: true, - Computed: false, - }, - - "volume_id": schema.StringAttribute{ - Description: "volumeID uniquely identifies a Portworx volume", - MarkdownDescription: "volumeID uniquely identifies a Portworx volume", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "projected": schema.SingleNestedAttribute{ - Description: "projected items for all in one resources secrets, configmaps, and downward API", - MarkdownDescription: "projected items for all in one resources secrets, configmaps, and downward API", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "sources": schema.ListNestedAttribute{ - Description: "sources is the list of volume projections. Each entry in this list handles one source.", - MarkdownDescription: "sources is the list of volume projections. Each entry in this list handles one source.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "cluster_trust_bundle": schema.SingleNestedAttribute{ - Description: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - MarkdownDescription: "ClusterTrustBundle allows a pod to access the '.spec.trustBundle' field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - MarkdownDescription: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as 'match nothing'. If set but empty, interpreted as 'match everything'.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - MarkdownDescription: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - MarkdownDescription: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Relative path from the volume root to write the bundle.", - MarkdownDescription: "Relative path from the volume root to write the bundle.", - Required: true, - Optional: false, - Computed: false, - }, - - "signer_name": schema.StringAttribute{ - Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - MarkdownDescription: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "config_map": schema.SingleNestedAttribute{ - Description: "configMap information about the configMap data to project", - MarkdownDescription: "configMap information about the configMap data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional specify whether the ConfigMap or its keys must be defined", - MarkdownDescription: "optional specify whether the ConfigMap or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "downward_api": schema.SingleNestedAttribute{ - Description: "downwardAPI information about the downwardAPI data to project", - MarkdownDescription: "downwardAPI information about the downwardAPI data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "Items is a list of DownwardAPIVolume file", - MarkdownDescription: "Items is a list of DownwardAPIVolume file", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "field_ref": schema.SingleNestedAttribute{ - Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - MarkdownDescription: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.", - Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - MarkdownDescription: "Version of the schema the FieldPath is written in terms of, defaults to 'v1'.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "Path of the field to select in the specified API version.", - MarkdownDescription: "Path of the field to select in the specified API version.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - MarkdownDescription: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Required: true, - Optional: false, - Computed: false, - }, - - "resource_field_ref": schema.SingleNestedAttribute{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - MarkdownDescription: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Attributes: map[string]schema.Attribute{ - "container_name": schema.StringAttribute{ - Description: "Container name: required for volumes, optional for env vars", - MarkdownDescription: "Container name: required for volumes, optional for env vars", - Required: false, - Optional: true, - Computed: false, - }, - - "divisor": schema.StringAttribute{ - Description: "Specifies the output format of the exposed resources, defaults to '1'", - MarkdownDescription: "Specifies the output format of the exposed resources, defaults to '1'", - Required: false, - Optional: true, - Computed: false, - }, - - "resource": schema.StringAttribute{ - Description: "Required: resource to select", - MarkdownDescription: "Required: resource to select", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "secret information about the secret data to project", - MarkdownDescription: "secret information about the secret data to project", - Attributes: map[string]schema.Attribute{ - "items": schema.ListNestedAttribute{ - Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, - - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, - - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its key must be defined", - MarkdownDescription: "optional field specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "service_account_token": schema.SingleNestedAttribute{ - Description: "serviceAccountToken is information about the serviceAccountToken data to project", - MarkdownDescription: "serviceAccountToken is information about the serviceAccountToken data to project", - Attributes: map[string]schema.Attribute{ - "audience": schema.StringAttribute{ - Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - MarkdownDescription: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Required: false, - Optional: true, - Computed: false, - }, - - "expiration_seconds": schema.Int64Attribute{ - Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - MarkdownDescription: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the path relative to the mount point of the file to project the token into.", - MarkdownDescription: "path is the path relative to the mount point of the file to project the token into.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "run_as_user": schema.Int64Attribute{ + Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, }, - "quobyte": schema.SingleNestedAttribute{ - Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - MarkdownDescription: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "se_linux_options": schema.SingleNestedAttribute{ + Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", Attributes: map[string]schema.Attribute{ - "group": schema.StringAttribute{ - Description: "group to map volume access to Default is no group", - MarkdownDescription: "group to map volume access to Default is no group", - Required: false, - Optional: true, - Computed: false, - }, - - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - MarkdownDescription: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", + "level": schema.StringAttribute{ + Description: "Level is SELinux level label that applies to the container.", + MarkdownDescription: "Level is SELinux level label that applies to the container.", Required: false, Optional: true, Computed: false, }, - "registry": schema.StringAttribute{ - Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - MarkdownDescription: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Required: true, - Optional: false, + "role": schema.StringAttribute{ + Description: "Role is a SELinux role label that applies to the container.", + MarkdownDescription: "Role is a SELinux role label that applies to the container.", + Required: false, + Optional: true, Computed: false, }, - "tenant": schema.StringAttribute{ - Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - MarkdownDescription: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", + "type": schema.StringAttribute{ + Description: "Type is a SELinux type label that applies to the container.", + MarkdownDescription: "Type is a SELinux type label that applies to the container.", Required: false, Optional: true, Computed: false, }, "user": schema.StringAttribute{ - Description: "user to map volume access to Defaults to serivceaccount user", - MarkdownDescription: "user to map volume access to Defaults to serivceaccount user", + Description: "User is a SELinux user label that applies to the container.", + MarkdownDescription: "User is a SELinux user label that applies to the container.", Required: false, Optional: true, Computed: false, }, - - "volume": schema.StringAttribute{ - Description: "volume is a string that references an already created Quobyte volume by name.", - MarkdownDescription: "volume is a string that references an already created Quobyte volume by name.", - Required: true, - Optional: false, - Computed: false, - }, }, Required: false, Optional: true, Computed: false, }, - "rbd": schema.SingleNestedAttribute{ - Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "localhost_profile": schema.StringAttribute{ + Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", + MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", Required: false, Optional: true, Computed: false, }, - "image": schema.StringAttribute{ - Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": schema.StringAttribute{ + Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", Required: true, Optional: false, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "keyring": schema.StringAttribute{ - Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Required: false, - Optional: true, - Computed: false, - }, + "supplemental_groups": schema.ListAttribute{ + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, - "monitors": schema.ListAttribute{ - Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - ElementType: types.StringType, - Required: true, - Optional: false, - Computed: false, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + + "sysctls": schema.ListNestedAttribute{ + Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of a property to set", + MarkdownDescription: "Name of a property to set", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value of a property to set", + MarkdownDescription: "Value of a property to set", + Required: true, + Optional: false, + Computed: false, + }, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "pool": schema.StringAttribute{ - Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "windows_options": schema.SingleNestedAttribute{ + Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + Attributes: map[string]schema.Attribute{ + "gmsa_credential_spec": schema.StringAttribute{ + Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", Required: false, Optional: true, Computed: false, }, - "read_only": schema.BoolAttribute{ - Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", Required: false, Optional: true, Computed: false, }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, + "host_process": schema.BoolAttribute{ + Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + Required: false, + Optional: true, + Computed: false, }, - "user": schema.StringAttribute{ - Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - MarkdownDescription: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "run_as_user_name": schema.StringAttribute{ + Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", Required: false, Optional: true, Computed: false, @@ -4339,95 +859,245 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName to be used in the Pod.", + MarkdownDescription: "PriorityClassName to be used in the Pod.", + Required: false, + Optional: true, + Computed: false, + }, + + "resources": schema.SingleNestedAttribute{ + Description: "Resouces describes the compute resource requirements.", + MarkdownDescription: "Resouces describes the compute resource requirements.", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "restart_policy": schema.StringAttribute{ + Description: "RestartPolicy to be added to the Backup Job.", + MarkdownDescription: "RestartPolicy to be added to the Backup Job.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Always", "OnFailure", "Never"), + }, + }, - "scale_io": schema.SingleNestedAttribute{ - Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "s3": schema.SingleNestedAttribute{ + Description: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", + MarkdownDescription: "S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.", + Attributes: map[string]schema.Attribute{ + "access_key_id_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", + MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Default is 'xfs'.", + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "bucket": schema.StringAttribute{ + Description: "Bucket is the name Name of the bucket to store backups.", + MarkdownDescription: "Bucket is the name Name of the bucket to store backups.", + Required: true, + Optional: false, + Computed: false, + }, + + "endpoint": schema.StringAttribute{ + Description: "Endpoint is the S3 API endpoint without scheme.", + MarkdownDescription: "Endpoint is the S3 API endpoint without scheme.", + Required: true, + Optional: false, + Computed: false, + }, + + "prefix": schema.StringAttribute{ + Description: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", + MarkdownDescription: "Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.", + Required: false, + Optional: true, + Computed: false, + }, + + "region": schema.StringAttribute{ + Description: "Region is the S3 region name to use.", + MarkdownDescription: "Region is the S3 region name to use.", + Required: false, + Optional: true, + Computed: false, + }, - "gateway": schema.StringAttribute{ - Description: "gateway is the host address of the ScaleIO API Gateway.", - MarkdownDescription: "gateway is the host address of the ScaleIO API Gateway.", + "secret_access_key_secret_key_ref": schema.SingleNestedAttribute{ + Description: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", + MarkdownDescription: "AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, - "protection_domain": schema.StringAttribute{ - Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", - MarkdownDescription: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "session_token_secret_key_ref": schema.SingleNestedAttribute{ + Description: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", + MarkdownDescription: "SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "read_only": schema.BoolAttribute{ - Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "tls": schema.SingleNestedAttribute{ + Description: "TLS provides the configuration required to establish TLS connections with S3.", + MarkdownDescription: "TLS provides the configuration required to establish TLS connections with S3.", + Attributes: map[string]schema.Attribute{ + "ca_secret_key_ref": schema.SingleNestedAttribute{ + Description: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", + MarkdownDescription: "CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3. By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, }, - Required: true, - Optional: false, + Required: false, + Optional: true, Computed: false, }, - "ssl_enabled": schema.BoolAttribute{ - Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", - MarkdownDescription: "sslEnabled Flag enable/disable SSL communication with Gateway, default false", + "enabled": schema.BoolAttribute{ + Description: "Enabled is a flag to enable TLS.", + MarkdownDescription: "Enabled is a flag to enable TLS.", Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "storage_mode": schema.StringAttribute{ - Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - MarkdownDescription: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Required: false, - Optional: true, - Computed: false, - }, + "security_context": schema.SingleNestedAttribute{ + Description: "SecurityContext holds security configuration that will be applied to a container.", + MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", + Attributes: map[string]schema.Attribute{ + "allow_privilege_escalation": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "storage_pool": schema.StringAttribute{ - Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", - MarkdownDescription: "storagePool is the ScaleIO Storage Pool associated with the protection domain.", + "capabilities": schema.SingleNestedAttribute{ + Description: "Adds and removes POSIX capabilities from running containers.", + MarkdownDescription: "Adds and removes POSIX capabilities from running containers.", + Attributes: map[string]schema.Attribute{ + "add": schema.ListAttribute{ + Description: "Added capabilities", + MarkdownDescription: "Added capabilities", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "system": schema.StringAttribute{ - Description: "system is the name of the storage system as configured in ScaleIO.", - MarkdownDescription: "system is the name of the storage system as configured in ScaleIO.", - Required: true, - Optional: false, - Computed: false, - }, - - "volume_name": schema.StringAttribute{ - Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", - MarkdownDescription: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", + "drop": schema.ListAttribute{ + Description: "Removed capabilities", + MarkdownDescription: "Removed capabilities", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, @@ -4438,97 +1108,148 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "secret": schema.SingleNestedAttribute{ - Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Attributes: map[string]schema.Attribute{ - "default_mode": schema.Int64Attribute{ - Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "privileged": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "items": schema.ListNestedAttribute{ - Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - MarkdownDescription: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the key to project.", - MarkdownDescription: "key is the key to project.", - Required: true, - Optional: false, - Computed: false, - }, + "read_only_root_filesystem": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "mode": schema.Int64Attribute{ - Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - MarkdownDescription: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "path": schema.StringAttribute{ - Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - MarkdownDescription: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "optional field specify whether the Secret or its keys must be defined", - MarkdownDescription: "optional field specify whether the Secret or its keys must be defined", - Required: false, - Optional: true, - Computed: false, - }, + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "secret_name": schema.StringAttribute{ - Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - MarkdownDescription: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Required: false, - Optional: true, - Computed: false, - }, + "service_account_name": schema.StringAttribute{ + Description: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to be used by the Pods.", + Required: false, + Optional: true, + Computed: false, + }, + + "target_recovery_time": schema.StringAttribute{ + Description: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", + MarkdownDescription: "TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + validators.DateTime64Validator(), + }, + }, + + "tolerations": schema.ListNestedAttribute{ + Description: "Tolerations to be used in the Pod.", + MarkdownDescription: "Tolerations to be used in the Pod.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, }, - Required: false, - Optional: true, - Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "storageos": schema.SingleNestedAttribute{ - Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - MarkdownDescription: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", + "volume": schema.SingleNestedAttribute{ + Description: "Volume is a Kubernetes Volume object that contains a backup.", + MarkdownDescription: "Volume is a Kubernetes Volume object that contains a backup.", + Attributes: map[string]schema.Attribute{ + "csi": schema.SingleNestedAttribute{ + Description: "Represents a source location of a volume to mount, managed by an external CSI driver", + MarkdownDescription: "Represents a source location of a volume to mount, managed by an external CSI driver", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - Required: false, - Optional: true, + "driver": schema.StringAttribute{ + Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + MarkdownDescription: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + Required: true, + Optional: false, Computed: false, }, - "read_only": schema.BoolAttribute{ - Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - MarkdownDescription: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "fs_type": schema.StringAttribute{ + Description: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", + MarkdownDescription: "fsType to mount. Ex. 'ext4', 'xfs', 'ntfs'. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", Required: false, Optional: true, Computed: false, }, - "secret_ref": schema.SingleNestedAttribute{ - Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", + "node_publish_secret_ref": schema.SingleNestedAttribute{ + Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", + MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", @@ -4543,17 +1264,18 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "volume_name": schema.StringAttribute{ - Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - MarkdownDescription: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + "read_only": schema.BoolAttribute{ + Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", + MarkdownDescription: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", Required: false, Optional: true, Computed: false, }, - "volume_namespace": schema.StringAttribute{ - Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - MarkdownDescription: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to 'default' if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", + "volume_attributes": schema.MapAttribute{ + Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + MarkdownDescription: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, @@ -4564,41 +1286,83 @@ func (r *K8SMariadbComRestoreV1Alpha1Manifest) Schema(_ context.Context, _ datas Computed: false, }, - "vsphere_volume": schema.SingleNestedAttribute{ - Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - MarkdownDescription: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "empty_dir": schema.SingleNestedAttribute{ + Description: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + MarkdownDescription: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", Attributes: map[string]schema.Attribute{ - "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", - MarkdownDescription: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", + "medium": schema.StringAttribute{ + Description: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "medium represents what type of storage medium should back this directory. The default is '' which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", Required: false, Optional: true, Computed: false, }, - "storage_policy_id": schema.StringAttribute{ - Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - MarkdownDescription: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", + "size_limit": schema.StringAttribute{ + Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + MarkdownDescription: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", Required: false, Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "nfs": schema.SingleNestedAttribute{ + Description: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + MarkdownDescription: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + Attributes: map[string]schema.Attribute{ + "path": schema.StringAttribute{ + Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, + Computed: false, + }, - "storage_policy_name": schema.StringAttribute{ - Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", - MarkdownDescription: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", + "read_only": schema.BoolAttribute{ + Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", Required: false, Optional: true, Computed: false, }, - "volume_path": schema.StringAttribute{ - Description: "volumePath is the path that identifies vSphere volume vmdk", - MarkdownDescription: "volumePath is the path that identifies vSphere volume vmdk", + "server": schema.StringAttribute{ + Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + MarkdownDescription: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "persistent_volume_claim": schema.SingleNestedAttribute{ + Description: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + MarkdownDescription: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + Attributes: map[string]schema.Attribute{ + "claim_name": schema.StringAttribute{ + Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + MarkdownDescription: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", Required: true, Optional: false, Computed: false, }, + + "read_only": schema.BoolAttribute{ + Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + MarkdownDescription: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_sql_job_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_sql_job_v1alpha1_manifest.go index ebe3694e8..ce9f0d901 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_sql_job_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_sql_job_v1alpha1_manifest.go @@ -46,87 +46,7 @@ type K8SMariadbComSqlJobV1Alpha1ManifestData struct { Spec *struct { Affinity *struct { AntiAffinityEnabled *bool `tfsdk:"anti_affinity_enabled" json:"antiAffinityEnabled,omitempty"` - NodeAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - Preference *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"preference" json:"preference,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *struct { - NodeSelectorTerms *[]struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchFields *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_fields" json:"matchFields,omitempty"` - } `tfsdk:"node_selector_terms" json:"nodeSelectorTerms,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"node_affinity" json:"nodeAffinity,omitempty"` - PodAffinity *struct { - PreferredDuringSchedulingIgnoredDuringExecution *[]struct { - PodAffinityTerm *struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` - Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` - } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` - RequiredDuringSchedulingIgnoredDuringExecution *[]struct { - LabelSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` - } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` - } `tfsdk:"pod_affinity" json:"podAffinity,omitempty"` - PodAntiAffinity *struct { + PodAntiAffinity *struct { PreferredDuringSchedulingIgnoredDuringExecution *[]struct { PodAffinityTerm *struct { LabelSelector *struct { @@ -137,18 +57,7 @@ type K8SMariadbComSqlJobV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"pod_affinity_term" json:"podAffinityTerm,omitempty"` Weight *int64 `tfsdk:"weight" json:"weight,omitempty"` } `tfsdk:"preferred_during_scheduling_ignored_during_execution" json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` @@ -161,18 +70,7 @@ type K8SMariadbComSqlJobV1Alpha1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` - MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` - MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` - NamespaceSelector *struct { - MatchExpressions *[]struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Operator *string `tfsdk:"operator" json:"operator,omitempty"` - Values *[]string `tfsdk:"values" json:"values,omitempty"` - } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` - MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` - } `tfsdk:"namespace_selector" json:"namespaceSelector,omitempty"` - Namespaces *[]string `tfsdk:"namespaces" json:"namespaces,omitempty"` - TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` + TopologyKey *string `tfsdk:"topology_key" json:"topologyKey,omitempty"` } `tfsdk:"required_during_scheduling_ignored_during_execution" json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` } `tfsdk:"pod_anti_affinity" json:"podAntiAffinity,omitempty"` } `tfsdk:"affinity" json:"affinity,omitempty"` @@ -191,20 +89,14 @@ type K8SMariadbComSqlJobV1Alpha1ManifestData struct { Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` } `tfsdk:"inherit_metadata" json:"inheritMetadata,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` PasswordSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"password_secret_key_ref" json:"passwordSecretKeyRef,omitempty"` PodMetadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -245,10 +137,6 @@ type K8SMariadbComSqlJobV1Alpha1ManifestData struct { } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Request *string `tfsdk:"request" json:"request,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -259,43 +147,21 @@ type K8SMariadbComSqlJobV1Alpha1ManifestData struct { } `tfsdk:"schedule" json:"schedule,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - AppArmorProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` - Capabilities *struct { + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` - Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` - ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` - ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` - RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` - RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` - RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` - SeLinuxOptions *struct { - Level *string `tfsdk:"level" json:"level,omitempty"` - Role *string `tfsdk:"role" json:"role,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - User *string `tfsdk:"user" json:"user,omitempty"` - } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` - SeccompProfile *struct { - LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` - } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - WindowsOptions *struct { - GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` - GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` - HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` - RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` - } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` Sql *string `tfsdk:"sql" json:"sql,omitempty"` SqlConfigMapKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"sql_config_map_key_ref" json:"sqlConfigMapKeyRef,omitempty"` SuccessfulJobsHistoryLimit *int64 `tfsdk:"successful_jobs_history_limit" json:"successfulJobsHistoryLimit,omitempty"` TimeZone *string `tfsdk:"time_zone" json:"timeZone,omitempty"` @@ -397,631 +263,24 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso Required: false, Optional: true, Computed: false, - }, - - "node_affinity": schema.SingleNestedAttribute{ - Description: "Describes node affinity scheduling rules for the pod.", - MarkdownDescription: "Describes node affinity scheduling rules for the pod.", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "preference": schema.SingleNestedAttribute{ - Description: "A node selector term, associated with the corresponding weight.", - MarkdownDescription: "A node selector term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - MarkdownDescription: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.SingleNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Attributes: map[string]schema.Attribute{ - "node_selector_terms": schema.ListNestedAttribute{ - Description: "Required. A list of node selector terms. The terms are ORed.", - MarkdownDescription: "Required. A list of node selector terms. The terms are ORed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's labels.", - MarkdownDescription: "A list of node selector requirements by node's labels.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_fields": schema.ListNestedAttribute{ - Description: "A list of node selector requirements by node's fields.", - MarkdownDescription: "A list of node selector requirements by node's fields.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The label key that the selector applies to.", - MarkdownDescription: "The label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - MarkdownDescription: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - MarkdownDescription: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "pod_anti_affinity": schema.SingleNestedAttribute{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - MarkdownDescription: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Attributes: map[string]schema.Attribute{ - "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - MarkdownDescription: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding 'weight' to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "pod_affinity_term": schema.SingleNestedAttribute{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", - Attributes: map[string]schema.Attribute{ - "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, + }, - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", + "pod_anti_affinity": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podantiaffinity-v1-core.", + Attributes: map[string]schema.Attribute{ + "preferred_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "pod_affinity_term": schema.SingleNestedAttribute{ + Description: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + MarkdownDescription: "Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#podaffinityterm-v1-core.", + Attributes: map[string]schema.Attribute{ + "label_selector": schema.SingleNestedAttribute{ + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1073,18 +332,9 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -1096,8 +346,8 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso }, "weight": schema.Int64Attribute{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - MarkdownDescription: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -1110,85 +360,13 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso }, "required_during_scheduling_ignored_during_execution": schema.ListNestedAttribute{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - MarkdownDescription: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + Description: "", + MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", - Attributes: map[string]schema.Attribute{ - "match_expressions": schema.ListNestedAttribute{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "key is the label key that the selector applies to.", - MarkdownDescription: "key is the label key that the selector applies to.", - Required: true, - Optional: false, - Computed: false, - }, - - "operator": schema.StringAttribute{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Required: true, - Optional: false, - Computed: false, - }, - - "values": schema.ListAttribute{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_labels": schema.MapAttribute{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "namespace_selector": schema.SingleNestedAttribute{ - Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", - MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", + Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + MarkdownDescription: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1240,18 +418,9 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, - "namespaces": schema.ListAttribute{ - Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - MarkdownDescription: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means 'this pod's namespace'.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "topology_key": schema.StringAttribute{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - MarkdownDescription: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, @@ -1304,8 +473,8 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -1334,8 +503,8 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -1378,57 +547,17 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso Description: "MariaDBRef is a reference to a MariaDB object.", MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -1461,24 +590,16 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso MarkdownDescription: "UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -1753,36 +874,9 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso Description: "Resouces describes the compute resource requirements.", MarkdownDescription: "Resouces describes the compute resource requirements.", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - - "request": schema.StringAttribute{ - Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", ElementType: types.StringType, Required: false, Optional: true, @@ -1790,8 +884,8 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso }, "requests": schema.MapAttribute{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "ResourceList is a set of (resource name, quantity) pairs.", + MarkdownDescription: "ResourceList is a set of (resource name, quantity) pairs.", ElementType: types.StringType, Required: false, Optional: true, @@ -1844,41 +938,16 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso MarkdownDescription: "SecurityContext holds security configuration that will be applied to a container.", Attributes: map[string]schema.Attribute{ "allow_privilege_escalation": schema.BoolAttribute{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, - "app_armor_profile": schema.SingleNestedAttribute{ - Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - MarkdownDescription: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is 'Localhost'.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - MarkdownDescription: "type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "capabilities": schema.SingleNestedAttribute{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", + Description: "Adds and removes POSIX capabilities from running containers.", + MarkdownDescription: "Adds and removes POSIX capabilities from running containers.", Attributes: map[string]schema.Attribute{ "add": schema.ListAttribute{ Description: "Added capabilities", @@ -1904,159 +973,44 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso }, "privileged": schema.BoolAttribute{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", - Required: false, - Optional: true, - Computed: false, - }, - - "proc_mount": schema.StringAttribute{ - Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "read_only_root_filesystem": schema.BoolAttribute{ - Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "run_as_group": schema.Int64Attribute{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "run_as_non_root": schema.BoolAttribute{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "run_as_user": schema.Int64Attribute{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, - - "se_linux_options": schema.SingleNestedAttribute{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "Level is SELinux level label that applies to the container.", - MarkdownDescription: "Level is SELinux level label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "Role is a SELinux role label that applies to the container.", - MarkdownDescription: "Role is a SELinux role label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "Type is a SELinux type label that applies to the container.", - MarkdownDescription: "Type is a SELinux type label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "User is a SELinux user label that applies to the container.", - MarkdownDescription: "User is a SELinux user label that applies to the container.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - MarkdownDescription: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is 'Localhost'. Must NOT be set for any other type.", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - MarkdownDescription: "type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "windows_options": schema.SingleNestedAttribute{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - MarkdownDescription: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", - Attributes: map[string]schema.Attribute{ - "gmsa_credential_spec": schema.StringAttribute{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - MarkdownDescription: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Required: false, - Optional: true, - Computed: false, - }, - - "gmsa_credential_spec_name": schema.StringAttribute{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - MarkdownDescription: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Required: false, - Optional: true, - Computed: false, - }, - - "host_process": schema.BoolAttribute{ - Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - MarkdownDescription: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_user_name": schema.StringAttribute{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - MarkdownDescription: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, }, Required: false, Optional: true, @@ -2084,24 +1038,16 @@ func (r *K8SMariadbComSqlJobV1Alpha1Manifest) Schema(_ context.Context, _ dataso MarkdownDescription: "SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script. It is defaulted to a ConfigMap with the contents of the Sql field.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_user_v1alpha1_manifest.go b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_user_v1alpha1_manifest.go index f4baf7778..84e41621b 100644 --- a/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_user_v1alpha1_manifest.go +++ b/internal/provider/k8s_mariadb_com_v1alpha1/k8s_mariadb_com_user_v1alpha1_manifest.go @@ -46,38 +46,29 @@ type K8SMariadbComUserV1Alpha1ManifestData struct { CleanupPolicy *string `tfsdk:"cleanup_policy" json:"cleanupPolicy,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` MariaDbRef *struct { - ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` - FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` - Kind *string `tfsdk:"kind" json:"kind,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` - ResourceVersion *string `tfsdk:"resource_version" json:"resourceVersion,omitempty"` - Uid *string `tfsdk:"uid" json:"uid,omitempty"` - WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + WaitForIt *bool `tfsdk:"wait_for_it" json:"waitForIt,omitempty"` } `tfsdk:"maria_db_ref" json:"mariaDbRef,omitempty"` MaxUserConnections *int64 `tfsdk:"max_user_connections" json:"maxUserConnections,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` PasswordHashSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"password_hash_secret_key_ref" json:"passwordHashSecretKeyRef,omitempty"` PasswordPlugin *struct { PluginArgSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"plugin_arg_secret_key_ref" json:"pluginArgSecretKeyRef,omitempty"` PluginNameSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"plugin_name_secret_key_ref" json:"pluginNameSecretKeyRef,omitempty"` } `tfsdk:"password_plugin" json:"passwordPlugin,omitempty"` PasswordSecretKeyRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"password_secret_key_ref" json:"passwordSecretKeyRef,omitempty"` RequeueInterval *string `tfsdk:"requeue_interval" json:"requeueInterval,omitempty"` RetryInterval *string `tfsdk:"retry_interval" json:"retryInterval,omitempty"` @@ -187,57 +178,17 @@ func (r *K8SMariadbComUserV1Alpha1Manifest) Schema(_ context.Context, _ datasour Description: "MariaDBRef is a reference to a MariaDB object.", MarkdownDescription: "MariaDBRef is a reference to a MariaDB object.", Attributes: map[string]schema.Attribute{ - "api_version": schema.StringAttribute{ - Description: "API version of the referent.", - MarkdownDescription: "API version of the referent.", - Required: false, - Optional: true, - Computed: false, - }, - - "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Required: false, - Optional: true, - Computed: false, - }, - - "kind": schema.StringAttribute{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - MarkdownDescription: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Required: false, - Optional: true, - Computed: false, - }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, }, "namespace": schema.StringAttribute{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - MarkdownDescription: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Required: false, - Optional: true, - Computed: false, - }, - - "resource_version": schema.StringAttribute{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - MarkdownDescription: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Required: false, - Optional: true, - Computed: false, - }, - - "uid": schema.StringAttribute{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - MarkdownDescription: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -280,24 +231,16 @@ func (r *K8SMariadbComUserV1Alpha1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "PasswordHashSecretKeyRef is a reference to the password hash to be used by the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password hash.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -317,24 +260,16 @@ func (r *K8SMariadbComUserV1Alpha1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin arguments.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -350,24 +285,16 @@ func (r *K8SMariadbComUserV1Alpha1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the authentication plugin.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, @@ -388,24 +315,16 @@ func (r *K8SMariadbComUserV1Alpha1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "PasswordSecretKeyRef is a reference to the password to be used by the User. If not provided, the account will be locked and the password will expire. If the referred Secret is labeled with 'k8s.mariadb.com/watch', updates may be performed to the Secret in order to update the password.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Description: "", + MarkdownDescription: "", Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + Description: "", + MarkdownDescription: "", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/kiali_io_v1alpha1/kiali_io_kiali_v1alpha1_manifest.go b/internal/provider/kiali_io_v1alpha1/kiali_io_kiali_v1alpha1_manifest.go index dd01cf82a..cf98938ca 100644 --- a/internal/provider/kiali_io_v1alpha1/kiali_io_kiali_v1alpha1_manifest.go +++ b/internal/provider/kiali_io_v1alpha1/kiali_io_kiali_v1alpha1_manifest.go @@ -218,10 +218,10 @@ type KialiIoKialiV1Alpha1ManifestData struct { } `tfsdk:"variables" json:"variables,omitempty"` } `tfsdk:"dashboards" json:"dashboards,omitempty"` Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` + External_url *string `tfsdk:"external_url" json:"external_url,omitempty"` Health_check_url *string `tfsdk:"health_check_url" json:"health_check_url,omitempty"` - In_cluster_url *string `tfsdk:"in_cluster_url" json:"in_cluster_url,omitempty"` + Internal_url *string `tfsdk:"internal_url" json:"internal_url,omitempty"` Is_core *bool `tfsdk:"is_core" json:"is_core,omitempty"` - Url *string `tfsdk:"url" json:"url,omitempty"` } `tfsdk:"grafana" json:"grafana,omitempty"` Istio *struct { Component_status *struct { @@ -291,9 +291,10 @@ type KialiIoKialiV1Alpha1ManifestData struct { } `tfsdk:"auth" json:"auth,omitempty"` Custom_headers *map[string]string `tfsdk:"custom_headers" json:"custom_headers,omitempty"` Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` + External_url *string `tfsdk:"external_url" json:"external_url,omitempty"` Grpc_port *int64 `tfsdk:"grpc_port" json:"grpc_port,omitempty"` Health_check_url *string `tfsdk:"health_check_url" json:"health_check_url,omitempty"` - In_cluster_url *string `tfsdk:"in_cluster_url" json:"in_cluster_url,omitempty"` + Internal_url *string `tfsdk:"internal_url" json:"internal_url,omitempty"` Is_core *bool `tfsdk:"is_core" json:"is_core,omitempty"` Namespace_selector *bool `tfsdk:"namespace_selector" json:"namespace_selector,omitempty"` Provider *string `tfsdk:"provider" json:"provider,omitempty"` @@ -303,7 +304,6 @@ type KialiIoKialiV1Alpha1ManifestData struct { Datasource_uid *string `tfsdk:"datasource_uid" json:"datasource_uid,omitempty"` Org_id *string `tfsdk:"org_id" json:"org_id,omitempty"` } `tfsdk:"tempo_config" json:"tempo_config,omitempty"` - Url *string `tfsdk:"url" json:"url,omitempty"` Use_grpc *bool `tfsdk:"use_grpc" json:"use_grpc,omitempty"` Whitelist_istio_system *[]string `tfsdk:"whitelist_istio_system" json:"whitelist_istio_system,omitempty"` } `tfsdk:"tracing" json:"tracing,omitempty"` @@ -1769,33 +1769,33 @@ func (r *KialiIoKialiV1Alpha1Manifest) Schema(_ context.Context, _ datasource.Sc Computed: false, }, - "health_check_url": schema.StringAttribute{ - Description: "Used in the Components health feature. This is the URL which Kiali will ping to determine whether the component is reachable or not. It defaults to 'in_cluster_url' when not provided.", - MarkdownDescription: "Used in the Components health feature. This is the URL which Kiali will ping to determine whether the component is reachable or not. It defaults to 'in_cluster_url' when not provided.", + "external_url": schema.StringAttribute{ + Description: "The URL that the Kiali UI uses when displaying Grafana links to the user. This URL must be accessible to clients external to the cluster (e.g. a browser) in order for the integration to work properly. If empty, an attempt to auto-discover it is made. This URL can contain query parameters if needed, such as '?orgId=1'.", + MarkdownDescription: "The URL that the Kiali UI uses when displaying Grafana links to the user. This URL must be accessible to clients external to the cluster (e.g. a browser) in order for the integration to work properly. If empty, an attempt to auto-discover it is made. This URL can contain query parameters if needed, such as '?orgId=1'.", Required: false, Optional: true, Computed: false, }, - "in_cluster_url": schema.StringAttribute{ - Description: "The URL used for in-cluster access. An example would be 'http://grafana.istio-system:3000'. This URL can contain query parameters if needed, such as '?orgId=1'. If not defined, it will default to 'http://grafana.:3000'.", - MarkdownDescription: "The URL used for in-cluster access. An example would be 'http://grafana.istio-system:3000'. This URL can contain query parameters if needed, such as '?orgId=1'. If not defined, it will default to 'http://grafana.:3000'.", + "health_check_url": schema.StringAttribute{ + Description: "Used in the Components health feature. This is the URL which Kiali will ping to determine whether the component is reachable or not. It defaults to 'internal_url' when not provided.", + MarkdownDescription: "Used in the Components health feature. This is the URL which Kiali will ping to determine whether the component is reachable or not. It defaults to 'internal_url' when not provided.", Required: false, Optional: true, Computed: false, }, - "is_core": schema.BoolAttribute{ - Description: "Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.", - MarkdownDescription: "Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.", + "internal_url": schema.StringAttribute{ + Description: "The URL used by Kiali to perform requests and queries to Grafana. An example would be 'http://grafana.istio-system:3000'. This URL can contain query parameters if needed, such as '?orgId=1'. If not defined, it will default to 'http://grafana.:3000'.", + MarkdownDescription: "The URL used by Kiali to perform requests and queries to Grafana. An example would be 'http://grafana.istio-system:3000'. This URL can contain query parameters if needed, such as '?orgId=1'. If not defined, it will default to 'http://grafana.:3000'.", Required: false, Optional: true, Computed: false, }, - "url": schema.StringAttribute{ - Description: "The URL that Kiali uses when integrating with Grafana. This URL must be accessible to clients external to the cluster in order for the integration to work properly. If empty, an attempt to auto-discover it is made. This URL can contain query parameters if needed, such as '?orgId=1'.", - MarkdownDescription: "The URL that Kiali uses when integrating with Grafana. This URL must be accessible to clients external to the cluster in order for the integration to work properly. If empty, an attempt to auto-discover it is made. This URL can contain query parameters if needed, such as '?orgId=1'.", + "is_core": schema.BoolAttribute{ + Description: "Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.", + MarkdownDescription: "Used in the Components health feature. When true, the unhealthy scenarios will be raised as errors. Otherwise, they will be raised as a warning.", Required: false, Optional: true, Computed: false, @@ -2283,8 +2283,16 @@ func (r *KialiIoKialiV1Alpha1Manifest) Schema(_ context.Context, _ datasource.Sc }, "enabled": schema.BoolAttribute{ - Description: "When true, connections to the Tracing server are enabled. 'in_cluster_url' and/or 'url' need to be provided.", - MarkdownDescription: "When true, connections to the Tracing server are enabled. 'in_cluster_url' and/or 'url' need to be provided.", + Description: "When true, connections to the Tracing server are enabled. 'internal_url' and/or 'external_url' need to be provided.", + MarkdownDescription: "When true, connections to the Tracing server are enabled. 'internal_url' and/or 'external_url' need to be provided.", + Required: false, + Optional: true, + Computed: false, + }, + + "external_url": schema.StringAttribute{ + Description: "The URL that the Kiali UI uses when displaying Tracing UI links to the user. This URL must be accessible to clients external to the cluster (e.g. a browser) in order to generate valid links. If the tracing service is deployed with a QUERY_BASE_PATH set, set this URL like https:///; for example, https://tracing-service:8080/jaeger", + MarkdownDescription: "The URL that the Kiali UI uses when displaying Tracing UI links to the user. This URL must be accessible to clients external to the cluster (e.g. a browser) in order to generate valid links. If the tracing service is deployed with a QUERY_BASE_PATH set, set this URL like https:///; for example, https://tracing-service:8080/jaeger", Required: false, Optional: true, Computed: false, @@ -2306,9 +2314,9 @@ func (r *KialiIoKialiV1Alpha1Manifest) Schema(_ context.Context, _ datasource.Sc Computed: false, }, - "in_cluster_url": schema.StringAttribute{ - Description: "Set URL for in-cluster access, which enables further integration between Kiali and Jaeger. When not provided, Kiali will only show external links using the 'url' setting. Note: Jaeger v1.20+ has separated ports for GRPC(16685) and HTTP(16686) requests. Make sure you use the appropriate port according to the 'use_grpc' value. Example: http://tracing.istio-system:16685", - MarkdownDescription: "Set URL for in-cluster access, which enables further integration between Kiali and Jaeger. When not provided, Kiali will only show external links using the 'url' setting. Note: Jaeger v1.20+ has separated ports for GRPC(16685) and HTTP(16686) requests. Make sure you use the appropriate port according to the 'use_grpc' value. Example: http://tracing.istio-system:16685", + "internal_url": schema.StringAttribute{ + Description: "The URL used by Kiali to perform requests and queries to the tracing backend which enables further integration between Kiali and the tracing server. When not provided, Kiali will only show external links using the 'external_url' setting. Note: Jaeger v1.20+ has separated ports for GRPC(16685) and HTTP(16686) requests. Make sure you use the appropriate port according to the 'use_grpc' value. Example: http://tracing.istio-system:16685", + MarkdownDescription: "The URL used by Kiali to perform requests and queries to the tracing backend which enables further integration between Kiali and the tracing server. When not provided, Kiali will only show external links using the 'external_url' setting. Note: Jaeger v1.20+ has separated ports for GRPC(16685) and HTTP(16686) requests. Make sure you use the appropriate port according to the 'use_grpc' value. Example: http://tracing.istio-system:16685", Required: false, Optional: true, Computed: false, @@ -2380,14 +2388,6 @@ func (r *KialiIoKialiV1Alpha1Manifest) Schema(_ context.Context, _ datasource.Sc Computed: false, }, - "url": schema.StringAttribute{ - Description: "The external URL that will be used to generate links to Jaeger. It must be accessible to clients external to the cluster (e.g: a browser) in order to generate valid links. If the tracing service is deployed with a QUERY_BASE_PATH set, set this URL like https:///. For example, https://tracing-service:8080/jaeger", - MarkdownDescription: "The external URL that will be used to generate links to Jaeger. It must be accessible to clients external to the cluster (e.g: a browser) in order to generate valid links. If the tracing service is deployed with a QUERY_BASE_PATH set, set this URL like https:///. For example, https://tracing-service:8080/jaeger", - Required: false, - Optional: true, - Computed: false, - }, - "use_grpc": schema.BoolAttribute{ Description: "Set to true in order to enable GRPC connections between Kiali and Jaeger which will speed up the queries. In some setups you might not be able to use GRPC (e.g. if Jaeger is behind some reverse proxy that doesn't support it). If not specified, this will defalt to 'true'.", MarkdownDescription: "Set to true in order to enable GRPC connections between Kiali and Jaeger which will speed up the queries. In some setups you might not be able to use GRPC (e.g. if Jaeger is behind some reverse proxy that doesn't support it). If not specified, this will defalt to 'true'.", diff --git a/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest.go b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest.go new file mode 100644 index 000000000..c67c1de96 --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest.go @@ -0,0 +1,253 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "regexp" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &KueueXK8SIoCohortV1Alpha1Manifest{} +) + +func NewKueueXK8SIoCohortV1Alpha1Manifest() datasource.DataSource { + return &KueueXK8SIoCohortV1Alpha1Manifest{} +} + +type KueueXK8SIoCohortV1Alpha1Manifest struct{} + +type KueueXK8SIoCohortV1Alpha1ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + Parent *string `tfsdk:"parent" json:"parent,omitempty"` + ResourceGroups *[]struct { + CoveredResources *[]string `tfsdk:"covered_resources" json:"coveredResources,omitempty"` + Flavors *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + Resources *[]struct { + BorrowingLimit *string `tfsdk:"borrowing_limit" json:"borrowingLimit,omitempty"` + LendingLimit *string `tfsdk:"lending_limit" json:"lendingLimit,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + NominalQuota *string `tfsdk:"nominal_quota" json:"nominalQuota,omitempty"` + } `tfsdk:"resources" json:"resources,omitempty"` + } `tfsdk:"flavors" json:"flavors,omitempty"` + } `tfsdk:"resource_groups" json:"resourceGroups,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *KueueXK8SIoCohortV1Alpha1Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_kueue_x_k8s_io_cohort_v1alpha1_manifest" +} + +func (r *KueueXK8SIoCohortV1Alpha1Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "Cohort is the Schema for the cohorts API. Using Hierarchical Cohorts (any Cohort which has a parent) with Fair Sharing results in undefined behavior in 0.9", + MarkdownDescription: "Cohort is the Schema for the cohorts API. Using Hierarchical Cohorts (any Cohort which has a parent) with Fair Sharing results in undefined behavior in 0.9", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "CohortSpec defines the desired state of Cohort", + MarkdownDescription: "CohortSpec defines the desired state of Cohort", + Attributes: map[string]schema.Attribute{ + "parent": schema.StringAttribute{ + Description: "Parent references the name of the Cohort's parent, if any. It satisfies one of three cases: 1) Unset. This Cohort is the root of its Cohort tree. 2) References a non-existent Cohort. We use default Cohort (no borrowing/lending limits). 3) References an existent Cohort. If a cycle is created, we disable all members of the Cohort, including ClusterQueues, until the cycle is removed. We prevent further admission while the cycle exists.", + MarkdownDescription: "Parent references the name of the Cohort's parent, if any. It satisfies one of three cases: 1) Unset. This Cohort is the root of its Cohort tree. 2) References a non-existent Cohort. We use default Cohort (no borrowing/lending limits). 3) References an existent Cohort. If a cycle is created, we disable all members of the Cohort, including ClusterQueues, until the cycle is removed. We prevent further admission while the cycle exists.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + + "resource_groups": schema.ListNestedAttribute{ + Description: "ResourceGroups describes groupings of Resources and Flavors. Each ResourceGroup defines a list of Resources and a list of Flavors which provide quotas for these Resources. Each Resource and each Flavor may only form part of one ResourceGroup. There may be up to 16 ResourceGroups within a Cohort. BorrowingLimit limits how much members of this Cohort subtree can borrow from the parent subtree. LendingLimit limits how much members of this Cohort subtree can lend to the parent subtree. Borrowing and Lending limits must only be set when the Cohort has a parent. Otherwise, the Cohort create/update will be rejected by the webhook.", + MarkdownDescription: "ResourceGroups describes groupings of Resources and Flavors. Each ResourceGroup defines a list of Resources and a list of Flavors which provide quotas for these Resources. Each Resource and each Flavor may only form part of one ResourceGroup. There may be up to 16 ResourceGroups within a Cohort. BorrowingLimit limits how much members of this Cohort subtree can borrow from the parent subtree. LendingLimit limits how much members of this Cohort subtree can lend to the parent subtree. Borrowing and Lending limits must only be set when the Cohort has a parent. Otherwise, the Cohort create/update will be rejected by the webhook.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "covered_resources": schema.ListAttribute{ + Description: "coveredResources is the list of resources covered by the flavors in this group. Examples: cpu, memory, vendor.com/gpu. The list cannot be empty and it can contain up to 16 resources.", + MarkdownDescription: "coveredResources is the list of resources covered by the flavors in this group. Examples: cpu, memory, vendor.com/gpu. The list cannot be empty and it can contain up to 16 resources.", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + + "flavors": schema.ListNestedAttribute{ + Description: "flavors is the list of flavors that provide the resources of this group. Typically, different flavors represent different hardware models (e.g., gpu models, cpu architectures) or pricing models (on-demand vs spot cpus). Each flavor MUST list all the resources listed for this group in the same order as the .resources field. The list cannot be empty and it can contain up to 16 flavors.", + MarkdownDescription: "flavors is the list of flavors that provide the resources of this group. Typically, different flavors represent different hardware models (e.g., gpu models, cpu architectures) or pricing models (on-demand vs spot cpus). Each flavor MUST list all the resources listed for this group in the same order as the .resources field. The list cannot be empty and it can contain up to 16 flavors.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "name of this flavor. The name should match the .metadata.name of a ResourceFlavor. If a matching ResourceFlavor does not exist, the ClusterQueue will have an Active condition set to False.", + MarkdownDescription: "name of this flavor. The name should match the .metadata.name of a ResourceFlavor. If a matching ResourceFlavor does not exist, the ClusterQueue will have an Active condition set to False.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + + "resources": schema.ListNestedAttribute{ + Description: "resources is the list of quotas for this flavor per resource. There could be up to 16 resources.", + MarkdownDescription: "resources is the list of quotas for this flavor per resource. There could be up to 16 resources.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "borrowing_limit": schema.StringAttribute{ + Description: "borrowingLimit is the maximum amount of quota for the [flavor, resource] combination that this ClusterQueue is allowed to borrow from the unused quota of other ClusterQueues in the same cohort. In total, at a given time, Workloads in a ClusterQueue can consume a quantity of quota equal to nominalQuota+borrowingLimit, assuming the other ClusterQueues in the cohort have enough unused quota. If null, it means that there is no borrowing limit. If not null, it must be non-negative. borrowingLimit must be null if spec.cohort is empty.", + MarkdownDescription: "borrowingLimit is the maximum amount of quota for the [flavor, resource] combination that this ClusterQueue is allowed to borrow from the unused quota of other ClusterQueues in the same cohort. In total, at a given time, Workloads in a ClusterQueue can consume a quantity of quota equal to nominalQuota+borrowingLimit, assuming the other ClusterQueues in the cohort have enough unused quota. If null, it means that there is no borrowing limit. If not null, it must be non-negative. borrowingLimit must be null if spec.cohort is empty.", + Required: false, + Optional: true, + Computed: false, + }, + + "lending_limit": schema.StringAttribute{ + Description: "lendingLimit is the maximum amount of unused quota for the [flavor, resource] combination that this ClusterQueue can lend to other ClusterQueues in the same cohort. In total, at a given time, ClusterQueue reserves for its exclusive use a quantity of quota equals to nominalQuota - lendingLimit. If null, it means that there is no lending limit, meaning that all the nominalQuota can be borrowed by other clusterQueues in the cohort. If not null, it must be non-negative. lendingLimit must be null if spec.cohort is empty. This field is in beta stage and is enabled by default.", + MarkdownDescription: "lendingLimit is the maximum amount of unused quota for the [flavor, resource] combination that this ClusterQueue can lend to other ClusterQueues in the same cohort. In total, at a given time, ClusterQueue reserves for its exclusive use a quantity of quota equals to nominalQuota - lendingLimit. If null, it means that there is no lending limit, meaning that all the nominalQuota can be borrowed by other clusterQueues in the cohort. If not null, it must be non-negative. lendingLimit must be null if spec.cohort is empty. This field is in beta stage and is enabled by default.", + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "name of this resource.", + MarkdownDescription: "name of this resource.", + Required: true, + Optional: false, + Computed: false, + }, + + "nominal_quota": schema.StringAttribute{ + Description: "nominalQuota is the quantity of this resource that is available for Workloads admitted by this ClusterQueue at a point in time. The nominalQuota must be non-negative. nominalQuota should represent the resources in the cluster available for running jobs (after discounting resources consumed by system components and pods not managed by kueue). In an autoscaled cluster, nominalQuota should account for resources that can be provided by a component such as Kubernetes cluster-autoscaler. If the ClusterQueue belongs to a cohort, the sum of the quotas for each (flavor, resource) combination defines the maximum quantity that can be allocated by a ClusterQueue in the cohort.", + MarkdownDescription: "nominalQuota is the quantity of this resource that is available for Workloads admitted by this ClusterQueue at a point in time. The nominalQuota must be non-negative. nominalQuota should represent the resources in the cluster available for running jobs (after discounting resources consumed by system components and pods not managed by kueue). In an autoscaled cluster, nominalQuota should account for resources that can be provided by a component such as Kubernetes cluster-autoscaler. If the ClusterQueue belongs to a cohort, the sum of the quotas for each (flavor, resource) combination defines the maximum quantity that can be allocated by a ClusterQueue in the cohort.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + } +} + +func (r *KueueXK8SIoCohortV1Alpha1Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest") + + var model KueueXK8SIoCohortV1Alpha1ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("kueue.x-k8s.io/v1alpha1") + model.Kind = pointer.String("Cohort") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go new file mode 100644 index 000000000..2f0760119 --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1alpha1" + "testing" +) + +func TestKueueXK8SIoCohortV1Alpha1Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoCohortV1Alpha1Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.go b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.go new file mode 100644 index 000000000..4b91633cc --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.go @@ -0,0 +1,173 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &KueueXK8SIoMultiKueueClusterV1Alpha1Manifest{} +) + +func NewKueueXK8SIoMultiKueueClusterV1Alpha1Manifest() datasource.DataSource { + return &KueueXK8SIoMultiKueueClusterV1Alpha1Manifest{} +} + +type KueueXK8SIoMultiKueueClusterV1Alpha1Manifest struct{} + +type KueueXK8SIoMultiKueueClusterV1Alpha1ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + KubeConfig *struct { + Location *string `tfsdk:"location" json:"location,omitempty"` + LocationType *string `tfsdk:"location_type" json:"locationType,omitempty"` + } `tfsdk:"kube_config" json:"kubeConfig,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *KueueXK8SIoMultiKueueClusterV1Alpha1Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest" +} + +func (r *KueueXK8SIoMultiKueueClusterV1Alpha1Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "MultiKueueCluster is the Schema for the multikueue API", + MarkdownDescription: "MultiKueueCluster is the Schema for the multikueue API", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "kube_config": schema.SingleNestedAttribute{ + Description: "Information how to connect to the cluster.", + MarkdownDescription: "Information how to connect to the cluster.", + Attributes: map[string]schema.Attribute{ + "location": schema.StringAttribute{ + Description: "Location of the KubeConfig. If LocationType is Secret then Location is the name of the secret inside the namespace in which the kueue controller manager is running. The config should be stored in the 'kubeconfig' key.", + MarkdownDescription: "Location of the KubeConfig. If LocationType is Secret then Location is the name of the secret inside the namespace in which the kueue controller manager is running. The config should be stored in the 'kubeconfig' key.", + Required: true, + Optional: false, + Computed: false, + }, + + "location_type": schema.StringAttribute{ + Description: "Type of the KubeConfig location.", + MarkdownDescription: "Type of the KubeConfig location.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Secret", "Path"), + }, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + } +} + +func (r *KueueXK8SIoMultiKueueClusterV1Alpha1Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest") + + var model KueueXK8SIoMultiKueueClusterV1Alpha1ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("kueue.x-k8s.io/v1alpha1") + model.Kind = pointer.String("MultiKueueCluster") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go new file mode 100644 index 000000000..0d0e6e6bd --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1alpha1" + "testing" +) + +func TestKueueXK8SIoMultiKueueClusterV1Alpha1Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueClusterV1Alpha1Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.go b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.go new file mode 100644 index 000000000..5fc6397ca --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.go @@ -0,0 +1,151 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &KueueXK8SIoMultiKueueConfigV1Alpha1Manifest{} +) + +func NewKueueXK8SIoMultiKueueConfigV1Alpha1Manifest() datasource.DataSource { + return &KueueXK8SIoMultiKueueConfigV1Alpha1Manifest{} +} + +type KueueXK8SIoMultiKueueConfigV1Alpha1Manifest struct{} + +type KueueXK8SIoMultiKueueConfigV1Alpha1ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + Clusters *[]string `tfsdk:"clusters" json:"clusters,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *KueueXK8SIoMultiKueueConfigV1Alpha1Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest" +} + +func (r *KueueXK8SIoMultiKueueConfigV1Alpha1Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "MultiKueueConfig is the Schema for the multikueue API", + MarkdownDescription: "MultiKueueConfig is the Schema for the multikueue API", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "MultiKueueConfigSpec defines the desired state of MultiKueueConfig", + MarkdownDescription: "MultiKueueConfigSpec defines the desired state of MultiKueueConfig", + Attributes: map[string]schema.Attribute{ + "clusters": schema.ListAttribute{ + Description: "List of MultiKueueClusters names where the workloads from the ClusterQueue should be distributed.", + MarkdownDescription: "List of MultiKueueClusters names where the workloads from the ClusterQueue should be distributed.", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + } +} + +func (r *KueueXK8SIoMultiKueueConfigV1Alpha1Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest") + + var model KueueXK8SIoMultiKueueConfigV1Alpha1ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("kueue.x-k8s.io/v1alpha1") + model.Kind = pointer.String("MultiKueueConfig") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go new file mode 100644 index 000000000..fea37dfde --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1alpha1" + "testing" +) + +func TestKueueXK8SIoMultiKueueConfigV1Alpha1Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueConfigV1Alpha1Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.go b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.go new file mode 100644 index 000000000..e9452ef07 --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.go @@ -0,0 +1,175 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1beta1 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "regexp" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &KueueXK8SIoProvisioningRequestConfigV1Beta1Manifest{} +) + +func NewKueueXK8SIoProvisioningRequestConfigV1Beta1Manifest() datasource.DataSource { + return &KueueXK8SIoProvisioningRequestConfigV1Beta1Manifest{} +} + +type KueueXK8SIoProvisioningRequestConfigV1Beta1Manifest struct{} + +type KueueXK8SIoProvisioningRequestConfigV1Beta1ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + ManagedResources *[]string `tfsdk:"managed_resources" json:"managedResources,omitempty"` + Parameters *map[string]string `tfsdk:"parameters" json:"parameters,omitempty"` + ProvisioningClassName *string `tfsdk:"provisioning_class_name" json:"provisioningClassName,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *KueueXK8SIoProvisioningRequestConfigV1Beta1Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest" +} + +func (r *KueueXK8SIoProvisioningRequestConfigV1Beta1Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "ProvisioningRequestConfig is the Schema for the provisioningrequestconfig API", + MarkdownDescription: "ProvisioningRequestConfig is the Schema for the provisioningrequestconfig API", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "ProvisioningRequestConfigSpec defines the desired state of ProvisioningRequestConfig", + MarkdownDescription: "ProvisioningRequestConfigSpec defines the desired state of ProvisioningRequestConfig", + Attributes: map[string]schema.Attribute{ + "managed_resources": schema.ListAttribute{ + Description: "managedResources contains the list of resources managed by the autoscaling. If empty, all resources are considered managed. If not empty, the ProvisioningRequest will contain only the podsets that are requesting at least one of them. If none of the workloads podsets is requesting at least a managed resource, the workload is considered ready.", + MarkdownDescription: "managedResources contains the list of resources managed by the autoscaling. If empty, all resources are considered managed. If not empty, the ProvisioningRequest will contain only the podsets that are requesting at least one of them. If none of the workloads podsets is requesting at least a managed resource, the workload is considered ready.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "parameters": schema.MapAttribute{ + Description: "Parameters contains all other parameters classes may require.", + MarkdownDescription: "Parameters contains all other parameters classes may require.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "provisioning_class_name": schema.StringAttribute{ + Description: "ProvisioningClassName describes the different modes of provisioning the resources. Check autoscaling.x-k8s.io ProvisioningRequestSpec.ProvisioningClassName for details.", + MarkdownDescription: "ProvisioningClassName describes the different modes of provisioning the resources. Check autoscaling.x-k8s.io ProvisioningRequestSpec.ProvisioningClassName for details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtMost(253), + stringvalidator.RegexMatches(regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`), ""), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + } +} + +func (r *KueueXK8SIoProvisioningRequestConfigV1Beta1Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest") + + var model KueueXK8SIoProvisioningRequestConfigV1Beta1ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("kueue.x-k8s.io/v1beta1") + model.Kind = pointer.String("ProvisioningRequestConfig") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go new file mode 100644 index 000000000..851a94b5b --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1beta1_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1beta1" + "testing" +) + +func TestKueueXK8SIoProvisioningRequestConfigV1Beta1Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + kueue_x_k8s_io_v1beta1.NewKueueXK8SIoProvisioningRequestConfigV1Beta1Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.go b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.go new file mode 100644 index 000000000..534aec02e --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.go @@ -0,0 +1,148 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1beta1 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &KueueXK8SIoWorkloadPriorityClassV1Beta1Manifest{} +) + +func NewKueueXK8SIoWorkloadPriorityClassV1Beta1Manifest() datasource.DataSource { + return &KueueXK8SIoWorkloadPriorityClassV1Beta1Manifest{} +} + +type KueueXK8SIoWorkloadPriorityClassV1Beta1Manifest struct{} + +type KueueXK8SIoWorkloadPriorityClassV1Beta1ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Description *string `tfsdk:"description" json:"description,omitempty"` + Value *int64 `tfsdk:"value" json:"value,omitempty"` +} + +func (r *KueueXK8SIoWorkloadPriorityClassV1Beta1Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest" +} + +func (r *KueueXK8SIoWorkloadPriorityClassV1Beta1Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "WorkloadPriorityClass is the Schema for the workloadPriorityClass API", + MarkdownDescription: "WorkloadPriorityClass is the Schema for the workloadPriorityClass API", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "description": schema.StringAttribute{ + Description: "description is an arbitrary string that usually provides guidelines on when this workloadPriorityClass should be used.", + MarkdownDescription: "description is an arbitrary string that usually provides guidelines on when this workloadPriorityClass should be used.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.Int64Attribute{ + Description: "value represents the integer value of this workloadPriorityClass. This is the actual priority that workloads receive when jobs have the name of this class in their workloadPriorityClass label. Changing the value of workloadPriorityClass doesn't affect the priority of workloads that were already created.", + MarkdownDescription: "value represents the integer value of this workloadPriorityClass. This is the actual priority that workloads receive when jobs have the name of this class in their workloadPriorityClass label. Changing the value of workloadPriorityClass doesn't affect the priority of workloads that were already created.", + Required: true, + Optional: false, + Computed: false, + }, + }, + } +} + +func (r *KueueXK8SIoWorkloadPriorityClassV1Beta1Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest") + + var model KueueXK8SIoWorkloadPriorityClassV1Beta1ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("kueue.x-k8s.io/v1beta1") + model.Kind = pointer.String("WorkloadPriorityClass") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go new file mode 100644 index 000000000..215b14dba --- /dev/null +++ b/internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1beta1_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1beta1" + "testing" +) + +func TestKueueXK8SIoWorkloadPriorityClassV1Beta1Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + kueue_x_k8s_io_v1beta1.NewKueueXK8SIoWorkloadPriorityClassV1Beta1Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/kuma_io_v1alpha1/kuma_io_mesh_trace_v1alpha1_manifest.go b/internal/provider/kuma_io_v1alpha1/kuma_io_mesh_trace_v1alpha1_manifest.go index b4adb2270..068cf6928 100644 --- a/internal/provider/kuma_io_v1alpha1/kuma_io_mesh_trace_v1alpha1_manifest.go +++ b/internal/provider/kuma_io_v1alpha1/kuma_io_mesh_trace_v1alpha1_manifest.go @@ -292,8 +292,8 @@ func (r *KumaIoMeshTraceV1Alpha1Manifest) Schema(_ context.Context, _ datasource }, "overall": schema.StringAttribute{ - Description: "Target percentage of requests will be traced after all other sampling checks have been applied (client, force tracing, random sampling). This field functions as an upper limit on the total configured sampling rate. For instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1% of client requests with the appropriate headers to be force traced. Mirror of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 Either int or decimal represented as string.", - MarkdownDescription: "Target percentage of requests will be traced after all other sampling checks have been applied (client, force tracing, random sampling). This field functions as an upper limit on the total configured sampling rate. For instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1% of client requests with the appropriate headers to be force traced. Mirror of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 Either int or decimal represented as string.", + Description: "Target percentage of requests will be traced after all other sampling checks have been applied (client, force tracing, random sampling). This field functions as an upper limit on the total configured sampling rate. For instance, setting client to 100 but overall to 1 will result in only 1% of client requests with the appropriate headers to be force traced. Mirror of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 Either int or decimal represented as string.", + MarkdownDescription: "Target percentage of requests will be traced after all other sampling checks have been applied (client, force tracing, random sampling). This field functions as an upper limit on the total configured sampling rate. For instance, setting client to 100 but overall to 1 will result in only 1% of client requests with the appropriate headers to be force traced. Mirror of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 Either int or decimal represented as string.", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_cluster_output_v1alpha1_manifest.go b/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_cluster_output_v1alpha1_manifest.go index dd9d1ddef..ddd24fd2a 100644 --- a/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_cluster_output_v1alpha1_manifest.go +++ b/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_cluster_output_v1alpha1_manifest.go @@ -1297,6 +1297,7 @@ type LoggingBanzaicloudIoClusterOutputV1Alpha1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"buffer" json:"buffer,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` + Max_bytes *int64 `tfsdk:"max_bytes" json:"max_bytes,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` Protocol *string `tfsdk:"protocol" json:"protocol,omitempty"` Tls *bool `tfsdk:"tls" json:"tls,omitempty"` @@ -12221,6 +12222,14 @@ func (r *LoggingBanzaicloudIoClusterOutputV1Alpha1Manifest) Schema(_ context.Con Computed: false, }, + "max_bytes": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "port": schema.Int64Attribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_output_v1alpha1_manifest.go b/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_output_v1alpha1_manifest.go index 49de5e8b6..4ae90607a 100644 --- a/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_output_v1alpha1_manifest.go +++ b/internal/provider/logging_banzaicloud_io_v1alpha1/logging_banzaicloud_io_output_v1alpha1_manifest.go @@ -1296,6 +1296,7 @@ type LoggingBanzaicloudIoOutputV1Alpha1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"buffer" json:"buffer,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` + Max_bytes *int64 `tfsdk:"max_bytes" json:"max_bytes,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` Protocol *string `tfsdk:"protocol" json:"protocol,omitempty"` Tls *bool `tfsdk:"tls" json:"tls,omitempty"` @@ -11883,6 +11884,14 @@ func (r *LoggingBanzaicloudIoOutputV1Alpha1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_bytes": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "port": schema.Int64Attribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_cluster_output_v1beta1_manifest.go b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_cluster_output_v1beta1_manifest.go index 8151045cd..9ab1d24ec 100644 --- a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_cluster_output_v1beta1_manifest.go +++ b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_cluster_output_v1beta1_manifest.go @@ -1297,6 +1297,7 @@ type LoggingBanzaicloudIoClusterOutputV1Beta1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"buffer" json:"buffer,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` + Max_bytes *int64 `tfsdk:"max_bytes" json:"max_bytes,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` Protocol *string `tfsdk:"protocol" json:"protocol,omitempty"` Tls *bool `tfsdk:"tls" json:"tls,omitempty"` @@ -12221,6 +12222,14 @@ func (r *LoggingBanzaicloudIoClusterOutputV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "max_bytes": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "port": schema.Int64Attribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest.go b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest.go index 621438cef..dc9882f86 100644 --- a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest.go +++ b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest.go @@ -180,6 +180,7 @@ type LoggingBanzaicloudIoFluentbitAgentV1Beta1ManifestData struct { Storage_backlog_mem_limit *string `tfsdk:"storage_backlog_mem_limit" json:"storage.backlog.mem_limit,omitempty"` Storage_checksum *string `tfsdk:"storage_checksum" json:"storage.checksum,omitempty"` Storage_delete_irrecoverable_chunks *string `tfsdk:"storage_delete_irrecoverable_chunks" json:"storage.delete_irrecoverable_chunks,omitempty"` + Storage_max_chunks_up *int64 `tfsdk:"storage_max_chunks_up" json:"storage.max_chunks_up,omitempty"` Storage_metrics *string `tfsdk:"storage_metrics" json:"storage.metrics,omitempty"` Storage_path *string `tfsdk:"storage_path" json:"storage.path,omitempty"` Storage_sync *string `tfsdk:"storage_sync" json:"storage.sync,omitempty"` @@ -331,6 +332,8 @@ type LoggingBanzaicloudIoFluentbitAgentV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -338,7 +341,8 @@ type LoggingBanzaicloudIoFluentbitAgentV1Beta1ManifestData struct { } `tfsdk:"buffer_volume_metrics" json:"bufferVolumeMetrics,omitempty"` BufferVolumeResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -354,7 +358,8 @@ type LoggingBanzaicloudIoFluentbitAgentV1Beta1ManifestData struct { } `tfsdk:"image" json:"image,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -686,6 +691,8 @@ type LoggingBanzaicloudIoFluentbitAgentV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -804,7 +811,8 @@ type LoggingBanzaicloudIoFluentbitAgentV1Beta1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -830,8 +838,9 @@ type LoggingBanzaicloudIoFluentbitAgentV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -1916,6 +1925,14 @@ func (r *LoggingBanzaicloudIoFluentbitAgentV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "storage_max_chunks_up": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "storage_metrics": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -2958,6 +2975,28 @@ func (r *LoggingBanzaicloudIoFluentbitAgentV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -3005,6 +3044,14 @@ func (r *LoggingBanzaicloudIoFluentbitAgentV1Beta1Manifest) Schema(_ context.Con Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -3107,6 +3154,14 @@ func (r *LoggingBanzaicloudIoFluentbitAgentV1Beta1Manifest) Schema(_ context.Con Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -5413,6 +5468,28 @@ func (r *LoggingBanzaicloudIoFluentbitAgentV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -6209,6 +6286,14 @@ func (r *LoggingBanzaicloudIoFluentbitAgentV1Beta1Manifest) Schema(_ context.Con Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -6387,6 +6472,14 @@ func (r *LoggingBanzaicloudIoFluentbitAgentV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_logging_v1beta1_manifest.go b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_logging_v1beta1_manifest.go index 507ccc835..8eac176d6 100644 --- a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_logging_v1beta1_manifest.go +++ b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_logging_v1beta1_manifest.go @@ -640,6 +640,7 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Storage_backlog_mem_limit *string `tfsdk:"storage_backlog_mem_limit" json:"storage.backlog.mem_limit,omitempty"` Storage_checksum *string `tfsdk:"storage_checksum" json:"storage.checksum,omitempty"` Storage_delete_irrecoverable_chunks *string `tfsdk:"storage_delete_irrecoverable_chunks" json:"storage.delete_irrecoverable_chunks,omitempty"` + Storage_max_chunks_up *int64 `tfsdk:"storage_max_chunks_up" json:"storage.max_chunks_up,omitempty"` Storage_metrics *string `tfsdk:"storage_metrics" json:"storage.metrics,omitempty"` Storage_path *string `tfsdk:"storage_path" json:"storage.path,omitempty"` Storage_sync *string `tfsdk:"storage_sync" json:"storage.sync,omitempty"` @@ -791,6 +792,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -798,7 +801,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"buffer_volume_metrics" json:"bufferVolumeMetrics,omitempty"` BufferVolumeResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -814,7 +818,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"image" json:"image,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1146,6 +1151,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -1264,7 +1271,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1290,8 +1298,9 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -1666,6 +1675,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -1673,7 +1684,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"buffer_volume_metrics" json:"bufferVolumeMetrics,omitempty"` BufferVolumeResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1687,7 +1699,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { ConfigCheckAnnotations *map[string]string `tfsdk:"config_check_annotations" json:"configCheckAnnotations,omitempty"` ConfigCheckResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1702,7 +1715,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"config_reloader_image" json:"configReloaderImage,omitempty"` ConfigReloaderResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2038,6 +2052,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -2093,7 +2109,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2123,7 +2140,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"pause_image" json:"pauseImage,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2186,8 +2204,9 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -2413,7 +2432,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2994,6 +3014,7 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Storage_backlog_mem_limit *string `tfsdk:"storage_backlog_mem_limit" json:"storage.backlog.mem_limit,omitempty"` Storage_checksum *string `tfsdk:"storage_checksum" json:"storage.checksum,omitempty"` Storage_delete_irrecoverable_chunks *string `tfsdk:"storage_delete_irrecoverable_chunks" json:"storage.delete_irrecoverable_chunks,omitempty"` + Storage_max_chunks_up *int64 `tfsdk:"storage_max_chunks_up" json:"storage.max_chunks_up,omitempty"` Storage_metrics *string `tfsdk:"storage_metrics" json:"storage.metrics,omitempty"` Storage_path *string `tfsdk:"storage_path" json:"storage.path,omitempty"` Storage_sync *string `tfsdk:"storage_sync" json:"storage.sync,omitempty"` @@ -3381,7 +3402,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -3638,7 +3660,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -3897,7 +3920,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -4017,8 +4041,9 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -4210,6 +4235,10 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -4541,6 +4570,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -4685,8 +4716,9 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -4839,11 +4871,17 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` Timeout *string `tfsdk:"timeout" json:"timeout,omitempty"` } `tfsdk:"buffer_volume_metrics" json:"bufferVolumeMetrics,omitempty"` + BufferVolumeMetricsImage *struct { + Repository *string `tfsdk:"repository" json:"repository,omitempty"` + Tag *string `tfsdk:"tag" json:"tag,omitempty"` + } `tfsdk:"buffer_volume_metrics_image" json:"bufferVolumeMetricsImage,omitempty"` BufferVolumeMetricsService *struct { Metadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -5181,7 +5219,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -5438,7 +5477,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -5697,7 +5737,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -5817,8 +5858,9 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -6010,6 +6052,10 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -6162,6 +6208,10 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"vsphere_volume" json:"vsphereVolume,omitempty"` } `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"config_check_pod" json:"configCheckPod,omitempty"` + ConfigReloadImage *struct { + Repository *string `tfsdk:"repository" json:"repository,omitempty"` + Tag *string `tfsdk:"tag" json:"tag,omitempty"` + } `tfsdk:"config_reload_image" json:"configReloadImage,omitempty"` GlobalOptions *struct { Log_level *string `tfsdk:"log_level" json:"log_level,omitempty"` Stats *struct { @@ -6247,11 +6297,17 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` Timeout *string `tfsdk:"timeout" json:"timeout,omitempty"` } `tfsdk:"metrics" json:"metrics,omitempty"` + MetricsExporterImage *struct { + Repository *string `tfsdk:"repository" json:"repository,omitempty"` + Tag *string `tfsdk:"tag" json:"tag,omitempty"` + } `tfsdk:"metrics_exporter_image" json:"metricsExporterImage,omitempty"` MetricsService *struct { Metadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` @@ -6686,7 +6742,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -6943,7 +7000,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -7202,7 +7260,8 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -7322,8 +7381,9 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -7515,6 +7575,10 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -7714,6 +7778,10 @@ type LoggingBanzaicloudIoLoggingV1Beta1ManifestData struct { } `tfsdk:"volume_claim_templates" json:"volumeClaimTemplates,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } `tfsdk:"stateful_set" json:"statefulSet,omitempty"` + SyslogNGImage *struct { + Repository *string `tfsdk:"repository" json:"repository,omitempty"` + Tag *string `tfsdk:"tag" json:"tag,omitempty"` + } `tfsdk:"syslog_ng_image" json:"syslogNGImage,omitempty"` Tls *struct { Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` SecretName *string `tfsdk:"secret_name" json:"secretName,omitempty"` @@ -11937,6 +12005,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "storage_max_chunks_up": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "storage_metrics": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -12979,6 +13055,28 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -13026,6 +13124,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -13128,6 +13234,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -15434,6 +15548,28 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -16230,6 +16366,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -16408,6 +16552,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -18956,6 +19108,28 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -19003,6 +19177,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -19100,6 +19282,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -19198,6 +19388,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -21498,6 +21696,28 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -21877,6 +22097,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -22077,6 +22305,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -22505,6 +22741,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -24000,6 +24244,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -28043,6 +28295,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "storage_max_chunks_up": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "storage_metrics": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -30603,6 +30863,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -32315,6 +32583,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -34044,6 +34320,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -34884,6 +35168,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -36176,6 +36468,31 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -38519,6 +38836,28 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -39508,6 +39847,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -40578,6 +40925,28 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -40609,6 +40978,31 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "buffer_volume_metrics_image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "repository": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tag": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "buffer_volume_metrics_service": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -42859,6 +43253,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -44571,6 +44973,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -46300,6 +46710,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -47140,6 +47558,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -48432,6 +48858,31 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -49449,6 +49900,31 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "config_reload_image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "repository": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tag": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "global_options": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -50057,6 +50533,28 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -50088,6 +50586,31 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "metrics_exporter_image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "repository": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tag": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "metrics_service": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -53015,6 +53538,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -54727,6 +55258,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -56456,6 +56995,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -57296,6 +57843,14 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -58588,6 +59143,31 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -59913,6 +60493,31 @@ func (r *LoggingBanzaicloudIoLoggingV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "syslog_ng_image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "repository": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tag": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "tls": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_node_agent_v1beta1_manifest.go b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_node_agent_v1beta1_manifest.go index 6407665e1..5fb668f20 100644 --- a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_node_agent_v1beta1_manifest.go +++ b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_node_agent_v1beta1_manifest.go @@ -53,6 +53,7 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { Storage_backlog_mem_limit *string `tfsdk:"storage_backlog_mem_limit" json:"storage.backlog.mem_limit,omitempty"` Storage_checksum *string `tfsdk:"storage_checksum" json:"storage.checksum,omitempty"` Storage_delete_irrecoverable_chunks *string `tfsdk:"storage_delete_irrecoverable_chunks" json:"storage.delete_irrecoverable_chunks,omitempty"` + Storage_max_chunks_up *int64 `tfsdk:"storage_max_chunks_up" json:"storage.max_chunks_up,omitempty"` Storage_metrics *string `tfsdk:"storage_metrics" json:"storage.metrics,omitempty"` Storage_path *string `tfsdk:"storage_path" json:"storage.path,omitempty"` Storage_sync *string `tfsdk:"storage_sync" json:"storage.sync,omitempty"` @@ -440,7 +441,8 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -697,7 +699,8 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -956,7 +959,8 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1076,8 +1080,9 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -1269,6 +1274,10 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -1600,6 +1609,8 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_secret" json:"keySecret,omitempty"` + MaxVersion *string `tfsdk:"max_version" json:"maxVersion,omitempty"` + MinVersion *string `tfsdk:"min_version" json:"minVersion,omitempty"` ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` } `tfsdk:"service_monitor_config" json:"serviceMonitorConfig,omitempty"` @@ -1744,8 +1755,9 @@ type LoggingBanzaicloudIoNodeAgentV1Beta1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -1957,6 +1969,14 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Computed: false, }, + "storage_max_chunks_up": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "storage_metrics": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -4517,6 +4537,14 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -6229,6 +6257,14 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -7958,6 +7994,14 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -8798,6 +8842,14 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -10090,6 +10142,31 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -12433,6 +12510,28 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Computed: false, }, + "max_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + "server_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -13422,6 +13521,14 @@ func (r *LoggingBanzaicloudIoNodeAgentV1Beta1Manifest) Schema(_ context.Context, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_output_v1beta1_manifest.go b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_output_v1beta1_manifest.go index 2f63e2e26..8cf58aaf8 100644 --- a/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_output_v1beta1_manifest.go +++ b/internal/provider/logging_banzaicloud_io_v1beta1/logging_banzaicloud_io_output_v1beta1_manifest.go @@ -1296,6 +1296,7 @@ type LoggingBanzaicloudIoOutputV1Beta1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"buffer" json:"buffer,omitempty"` Host *string `tfsdk:"host" json:"host,omitempty"` + Max_bytes *int64 `tfsdk:"max_bytes" json:"max_bytes,omitempty"` Port *int64 `tfsdk:"port" json:"port,omitempty"` Protocol *string `tfsdk:"protocol" json:"protocol,omitempty"` Tls *bool `tfsdk:"tls" json:"tls,omitempty"` @@ -12210,6 +12211,14 @@ func (r *LoggingBanzaicloudIoOutputV1Beta1Manifest) Schema(_ context.Context, _ Computed: false, }, + "max_bytes": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "port": schema.Int64Attribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest.go b/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest.go index 9ce8a349f..9b128f2f4 100644 --- a/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest.go +++ b/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest.go @@ -107,7 +107,8 @@ type LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -431,7 +432,8 @@ type LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -547,7 +549,8 @@ type LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -617,8 +620,9 @@ type LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -789,6 +793,10 @@ type LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -1448,6 +1456,14 @@ func (r *LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1Manifest) Schema(_ con Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -3617,6 +3633,14 @@ func (r *LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1Manifest) Schema(_ con Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -4403,6 +4427,14 @@ func (r *LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1Manifest) Schema(_ con Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -4891,6 +4923,14 @@ func (r *LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1Manifest) Schema(_ con Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -6029,6 +6069,31 @@ func (r *LoggingExtensionsBanzaicloudIoEventTailerV1Alpha1Manifest) Schema(_ con Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest.go b/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest.go index f0dc1f553..9f35fae5f 100644 --- a/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest.go +++ b/internal/provider/logging_extensions_banzaicloud_io_v1alpha1/logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest.go @@ -112,7 +112,8 @@ type LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -248,7 +249,8 @@ type LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -511,7 +513,8 @@ type LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -627,7 +630,8 @@ type LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -697,8 +701,9 @@ type LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -869,6 +874,10 @@ type LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -1569,6 +1578,14 @@ func (r *LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1Manifest) Schema(_ cont Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -2489,6 +2506,14 @@ func (r *LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1Manifest) Schema(_ cont Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -2935,8 +2960,8 @@ func (r *LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1Manifest) Schema(_ cont Computed: false, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, @@ -4262,6 +4287,14 @@ func (r *LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1Manifest) Schema(_ cont Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -5048,6 +5081,14 @@ func (r *LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1Manifest) Schema(_ cont Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -5536,6 +5577,14 @@ func (r *LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1Manifest) Schema(_ cont Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -6674,6 +6723,31 @@ func (r *LoggingExtensionsBanzaicloudIoHostTailerV1Alpha1Manifest) Schema(_ cont Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/loki_grafana_com_v1/loki_grafana_com_loki_stack_v1_manifest.go b/internal/provider/loki_grafana_com_v1/loki_grafana_com_loki_stack_v1_manifest.go index 7da2214ae..79b263a83 100644 --- a/internal/provider/loki_grafana_com_v1/loki_grafana_com_loki_stack_v1_manifest.go +++ b/internal/provider/loki_grafana_com_v1/loki_grafana_com_loki_stack_v1_manifest.go @@ -942,8 +942,8 @@ func (r *LokiGrafanaComLokiStackV1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "OTLP to configure which resource, scope and log attributes to store as labels or structured metadata or drop them altogether for all tenants.", Attributes: map[string]schema.Attribute{ "indexed_resource_attributes": schema.ListAttribute{ - Description: "IndexedResourceAttributes contains the global configuration for resource attributes to store them as index labels or structured metadata or drop them altogether.", - MarkdownDescription: "IndexedResourceAttributes contains the global configuration for resource attributes to store them as index labels or structured metadata or drop them altogether.", + Description: "IndexedResourceAttributes contains the global configuration for resource attributes to store them as index labels.", + MarkdownDescription: "IndexedResourceAttributes contains the global configuration for resource attributes to store them as index labels.", ElementType: types.StringType, Required: false, Optional: true, @@ -951,8 +951,8 @@ func (r *LokiGrafanaComLokiStackV1Manifest) Schema(_ context.Context, _ datasour }, "log_attributes": schema.ListNestedAttribute{ - Description: "LogAttributes contains the configuration for log attributes to store them as index labels or structured metadata or drop them altogether.", - MarkdownDescription: "LogAttributes contains the configuration for log attributes to store them as index labels or structured metadata or drop them altogether.", + Description: "LogAttributes contains the configuration for log attributes to store them as structured metadata or drop them altogether.", + MarkdownDescription: "LogAttributes contains the configuration for log attributes to store them as structured metadata or drop them altogether.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -1046,8 +1046,8 @@ func (r *LokiGrafanaComLokiStackV1Manifest) Schema(_ context.Context, _ datasour }, "scope_attributes": schema.ListNestedAttribute{ - Description: "ScopeAttributes contains the configuration for scope attributes to store them as index labels or structured metadata or drop them altogether.", - MarkdownDescription: "ScopeAttributes contains the configuration for scope attributes to store them as index labels or structured metadata or drop them altogether.", + Description: "ScopeAttributes contains the configuration for scope attributes to store them as structured metadata or drop them altogether.", + MarkdownDescription: "ScopeAttributes contains the configuration for scope attributes to store them as structured metadata or drop them altogether.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -1307,8 +1307,8 @@ func (r *LokiGrafanaComLokiStackV1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "OTLP to configure which resource, scope and log attributes to store as labels or structured metadata or drop them altogether for a single tenants.", Attributes: map[string]schema.Attribute{ "log_attributes": schema.ListNestedAttribute{ - Description: "LogAttributes contains the configuration for log attributes to store them as index labels or structured metadata or drop them altogether.", - MarkdownDescription: "LogAttributes contains the configuration for log attributes to store them as index labels or structured metadata or drop them altogether.", + Description: "LogAttributes contains the configuration for log attributes to store them as structured metadata or drop them altogether.", + MarkdownDescription: "LogAttributes contains the configuration for log attributes to store them as structured metadata or drop them altogether.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -1402,8 +1402,8 @@ func (r *LokiGrafanaComLokiStackV1Manifest) Schema(_ context.Context, _ datasour }, "scope_attributes": schema.ListNestedAttribute{ - Description: "ScopeAttributes contains the configuration for scope attributes to store them as index labels or structured metadata or drop them altogether.", - MarkdownDescription: "ScopeAttributes contains the configuration for scope attributes to store them as index labels or structured metadata or drop them altogether.", + Description: "ScopeAttributes contains the configuration for scope attributes to store them as structured metadata or drop them altogether.", + MarkdownDescription: "ScopeAttributes contains the configuration for scope attributes to store them as structured metadata or drop them altogether.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ diff --git a/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_export_v1alpha1_manifest.go b/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_export_v1alpha1_manifest.go index 95783b9c7..073cbbc6c 100644 --- a/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_export_v1alpha1_manifest.go +++ b/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_export_v1alpha1_manifest.go @@ -548,7 +548,8 @@ type MulticlusterCrdAntreaIoResourceExportV1Alpha1ManifestData struct { TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"client_ip" json:"clientIP,omitempty"` } `tfsdk:"session_affinity_config" json:"sessionAffinityConfig,omitempty"` - Type *string `tfsdk:"type" json:"type,omitempty"` + TrafficDistribution *string `tfsdk:"traffic_distribution" json:"trafficDistribution,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"service_spec" json:"serviceSpec,omitempty"` } `tfsdk:"service" json:"service,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` @@ -3418,8 +3419,8 @@ func (r *MulticlusterCrdAntreaIoResourceExportV1Alpha1Manifest) Schema(_ context }, "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", + Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", + MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", Required: false, Optional: true, Computed: false, @@ -3518,8 +3519,8 @@ func (r *MulticlusterCrdAntreaIoResourceExportV1Alpha1Manifest) Schema(_ context }, "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", + Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", + MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", Required: false, Optional: true, Computed: false, @@ -4005,6 +4006,14 @@ func (r *MulticlusterCrdAntreaIoResourceExportV1Alpha1Manifest) Schema(_ context Computed: false, }, + "traffic_distribution": schema.StringAttribute{ + Description: "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to 'PreferClose', implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature.", + MarkdownDescription: "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to 'PreferClose', implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature.", + Required: false, + Optional: true, + Computed: false, + }, + "type": schema.StringAttribute{ Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 'ClusterIP' allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is 'None', no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. 'NodePort' builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. 'LoadBalancer' builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. 'ExternalName' aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", MarkdownDescription: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. 'ClusterIP' allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is 'None', no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. 'NodePort' builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. 'LoadBalancer' builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. 'ExternalName' aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", diff --git a/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_import_v1alpha1_manifest.go b/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_import_v1alpha1_manifest.go index 4175f00e0..f73e9bb1a 100644 --- a/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_import_v1alpha1_manifest.go +++ b/internal/provider/multicluster_crd_antrea_io_v1alpha1/multicluster_crd_antrea_io_resource_import_v1alpha1_manifest.go @@ -3412,8 +3412,8 @@ func (r *MulticlusterCrdAntreaIoResourceImportV1Alpha1Manifest) Schema(_ context }, "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", + Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", + MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", Required: false, Optional: true, Computed: false, @@ -3512,8 +3512,8 @@ func (r *MulticlusterCrdAntreaIoResourceImportV1Alpha1Manifest) Schema(_ context }, "field_path": schema.StringAttribute{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", - MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.", + Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", + MarkdownDescription: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: 'spec.containers{name}' (where 'name' refers to the name of the container that triggered the event) or if no container name is specified 'spec.containers[2]' (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/opentelemetry_io_v1alpha1/opentelemetry_io_instrumentation_v1alpha1_manifest.go b/internal/provider/opentelemetry_io_v1alpha1/opentelemetry_io_instrumentation_v1alpha1_manifest.go index 43a5267f4..1858653b5 100644 --- a/internal/provider/opentelemetry_io_v1alpha1/opentelemetry_io_instrumentation_v1alpha1_manifest.go +++ b/internal/provider/opentelemetry_io_v1alpha1/opentelemetry_io_instrumentation_v1alpha1_manifest.go @@ -107,6 +107,9 @@ type OpentelemetryIoInstrumentationV1Alpha1ManifestData struct { Version *string `tfsdk:"version" json:"version,omitempty"` VolumeLimitSize *string `tfsdk:"volume_limit_size" json:"volumeLimitSize,omitempty"` } `tfsdk:"apache_httpd" json:"apacheHttpd,omitempty"` + Defaults *struct { + UseLabelsForResourceAttributes *bool `tfsdk:"use_labels_for_resource_attributes" json:"useLabelsForResourceAttributes,omitempty"` + } `tfsdk:"defaults" json:"defaults,omitempty"` Dotnet *struct { Env *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -891,6 +894,23 @@ func (r *OpentelemetryIoInstrumentationV1Alpha1Manifest) Schema(_ context.Contex Computed: false, }, + "defaults": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "use_labels_for_resource_attributes": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "dotnet": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/operator_tigera_io_v1/operator_tigera_io_api_server_v1_manifest.go b/internal/provider/operator_tigera_io_v1/operator_tigera_io_api_server_v1_manifest.go index 3acdd105c..9cab815ba 100644 --- a/internal/provider/operator_tigera_io_v1/operator_tigera_io_api_server_v1_manifest.go +++ b/internal/provider/operator_tigera_io_v1/operator_tigera_io_api_server_v1_manifest.go @@ -99,6 +99,8 @@ type OperatorTigeraIoApiserverV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -121,6 +123,8 @@ type OperatorTigeraIoApiserverV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -144,6 +148,8 @@ type OperatorTigeraIoApiserverV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -166,6 +172,8 @@ type OperatorTigeraIoApiserverV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -597,8 +605,8 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -650,6 +658,24 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -746,8 +772,8 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -799,6 +825,24 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -895,8 +939,8 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -948,6 +992,24 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -1044,8 +1106,8 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1097,6 +1159,24 @@ func (r *OperatorTigeraIoApiserverV1Manifest) Schema(_ context.Context, _ dataso Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", diff --git a/internal/provider/operator_tigera_io_v1/operator_tigera_io_egress_gateway_v1_manifest.go b/internal/provider/operator_tigera_io_v1/operator_tigera_io_egress_gateway_v1_manifest.go index dd9159e46..8a4e1ec0d 100644 --- a/internal/provider/operator_tigera_io_v1/operator_tigera_io_egress_gateway_v1_manifest.go +++ b/internal/provider/operator_tigera_io_v1/operator_tigera_io_egress_gateway_v1_manifest.go @@ -117,6 +117,8 @@ type OperatorTigeraIoEgressGatewayV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -139,6 +141,8 @@ type OperatorTigeraIoEgressGatewayV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -162,6 +166,8 @@ type OperatorTigeraIoEgressGatewayV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -184,6 +190,8 @@ type OperatorTigeraIoEgressGatewayV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -773,8 +781,8 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -826,6 +834,24 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -922,8 +948,8 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -975,6 +1001,24 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -1071,8 +1115,8 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1124,6 +1168,24 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -1220,8 +1282,8 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1273,6 +1335,24 @@ func (r *OperatorTigeraIoEgressGatewayV1Manifest) Schema(_ context.Context, _ da Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", diff --git a/internal/provider/operator_tigera_io_v1/operator_tigera_io_installation_v1_manifest.go b/internal/provider/operator_tigera_io_v1/operator_tigera_io_installation_v1_manifest.go index 4118b230e..bfa46c96a 100644 --- a/internal/provider/operator_tigera_io_v1/operator_tigera_io_installation_v1_manifest.go +++ b/internal/provider/operator_tigera_io_v1/operator_tigera_io_installation_v1_manifest.go @@ -100,6 +100,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -122,6 +124,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -145,6 +149,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -167,6 +173,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -299,6 +307,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -321,6 +331,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -344,6 +356,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -366,6 +380,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -467,6 +483,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -489,6 +507,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -512,6 +532,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -534,6 +556,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -635,6 +659,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -657,6 +683,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -680,6 +708,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -702,6 +732,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -824,6 +856,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -846,6 +880,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -869,6 +905,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -891,6 +929,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -1049,6 +1089,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -1071,6 +1113,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -1094,6 +1138,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -1116,6 +1162,8 @@ type OperatorTigeraIoInstallationV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -1557,8 +1605,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1610,6 +1658,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -1706,8 +1772,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1759,6 +1825,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -1855,8 +1939,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1908,6 +1992,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -2004,8 +2106,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -2057,6 +2159,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -2926,8 +3046,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -2979,6 +3099,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -3075,8 +3213,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -3128,6 +3266,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -3224,8 +3380,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -3277,6 +3433,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -3373,8 +3547,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -3426,6 +3600,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -4030,8 +4222,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -4083,6 +4275,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -4179,8 +4389,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -4232,6 +4442,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -4328,8 +4556,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -4381,6 +4609,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -4477,8 +4723,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -4530,6 +4776,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -5134,8 +5398,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -5187,6 +5451,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -5283,8 +5565,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -5336,6 +5618,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -5432,8 +5732,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -5485,6 +5785,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -5581,8 +5899,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -5634,6 +5952,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -6396,8 +6732,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -6449,6 +6785,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -6545,8 +6899,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -6598,6 +6952,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -6694,8 +7066,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -6747,6 +7119,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -6843,8 +7233,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -6896,6 +7286,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -7877,8 +8285,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -7930,6 +8338,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -8026,8 +8452,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -8079,6 +8505,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -8175,8 +8619,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -8228,6 +8672,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -8324,8 +8786,8 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -8377,6 +8839,24 @@ func (r *OperatorTigeraIoInstallationV1Manifest) Schema(_ context.Context, _ dat Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", diff --git a/internal/provider/operator_tigera_io_v1/operator_tigera_io_tenant_v1_manifest.go b/internal/provider/operator_tigera_io_v1/operator_tigera_io_tenant_v1_manifest.go index 715382896..9b828db0f 100644 --- a/internal/provider/operator_tigera_io_v1/operator_tigera_io_tenant_v1_manifest.go +++ b/internal/provider/operator_tigera_io_v1/operator_tigera_io_tenant_v1_manifest.go @@ -124,6 +124,8 @@ type OperatorTigeraIoTenantV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -146,6 +148,8 @@ type OperatorTigeraIoTenantV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -169,6 +173,8 @@ type OperatorTigeraIoTenantV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -191,6 +197,8 @@ type OperatorTigeraIoTenantV1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"label_selector" json:"labelSelector,omitempty"` + MatchLabelKeys *[]string `tfsdk:"match_label_keys" json:"matchLabelKeys,omitempty"` + MismatchLabelKeys *[]string `tfsdk:"mismatch_label_keys" json:"mismatchLabelKeys,omitempty"` NamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -786,8 +794,8 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -839,6 +847,24 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -935,8 +961,8 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -988,6 +1014,24 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -1084,8 +1128,8 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "Required. A pod affinity term, associated with the corresponding weight.", Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1137,6 +1181,24 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", @@ -1233,8 +1295,8 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "label_selector": schema.SingleNestedAttribute{ - Description: "A label query over a set of resources, in this case pods.", - MarkdownDescription: "A label query over a set of resources, in this case pods.", + Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", + MarkdownDescription: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.", Attributes: map[string]schema.Attribute{ "match_expressions": schema.ListNestedAttribute{ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", @@ -1286,6 +1348,24 @@ func (r *OperatorTigeraIoTenantV1Manifest) Schema(_ context.Context, _ datasourc Computed: false, }, + "match_label_keys": schema.ListAttribute{ + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "mismatch_label_keys": schema.ListAttribute{ + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'LabelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "namespace_selector": schema.SingleNestedAttribute{ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", MarkdownDescription: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means 'this pod's namespace'. An empty selector ({}) matches all namespaces.", diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest.go new file mode 100644 index 000000000..25a5ba59c --- /dev/null +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest.go @@ -0,0 +1,1297 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package operator_victoriametrics_com_v1beta1 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &OperatorVictoriametricsComVlogsV1Beta1Manifest{} +) + +func NewOperatorVictoriametricsComVlogsV1Beta1Manifest() datasource.DataSource { + return &OperatorVictoriametricsComVlogsV1Beta1Manifest{} +} + +type OperatorVictoriametricsComVlogsV1Beta1Manifest struct{} + +type OperatorVictoriametricsComVlogsV1Beta1ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Namespace string `tfsdk:"namespace" json:"namespace"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + DnsConfig *struct { + Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` + Options *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"options" json:"options,omitempty"` + Searches *[]string `tfsdk:"searches" json:"searches,omitempty"` + } `tfsdk:"dns_config" json:"dnsConfig,omitempty"` + DnsPolicy *string `tfsdk:"dns_policy" json:"dnsPolicy,omitempty"` + ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` + ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` + FutureRetention *string `tfsdk:"future_retention" json:"futureRetention,omitempty"` + HostAliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Repository *string `tfsdk:"repository" json:"repository,omitempty"` + Tag *string `tfsdk:"tag" json:"tag,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` + ImagePullSecrets *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` + InitContainers *[]map[string]string `tfsdk:"init_containers" json:"initContainers,omitempty"` + LivenessProbe *map[string]string `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` + LogFormat *string `tfsdk:"log_format" json:"logFormat,omitempty"` + LogIngestedRows *bool `tfsdk:"log_ingested_rows" json:"logIngestedRows,omitempty"` + LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` + LogNewStreams *bool `tfsdk:"log_new_streams" json:"logNewStreams,omitempty"` + MinReadySeconds *int64 `tfsdk:"min_ready_seconds" json:"minReadySeconds,omitempty"` + NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` + Paused *bool `tfsdk:"paused" json:"paused,omitempty"` + PodMetadata *struct { + Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"pod_metadata" json:"podMetadata,omitempty"` + Port *string `tfsdk:"port" json:"port,omitempty"` + PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` + ReadinessGates *[]struct { + ConditionType *string `tfsdk:"condition_type" json:"conditionType,omitempty"` + } `tfsdk:"readiness_gates" json:"readinessGates,omitempty"` + ReadinessProbe *map[string]string `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` + RemovePvcAfterDelete *bool `tfsdk:"remove_pvc_after_delete" json:"removePvcAfterDelete,omitempty"` + ReplicaCount *int64 `tfsdk:"replica_count" json:"replicaCount,omitempty"` + Resources *struct { + Claims *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"claims" json:"claims,omitempty"` + Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` + Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` + } `tfsdk:"resources" json:"resources,omitempty"` + RetentionPeriod *string `tfsdk:"retention_period" json:"retentionPeriod,omitempty"` + RevisionHistoryLimitCount *int64 `tfsdk:"revision_history_limit_count" json:"revisionHistoryLimitCount,omitempty"` + RuntimeClassName *string `tfsdk:"runtime_class_name" json:"runtimeClassName,omitempty"` + SchedulerName *string `tfsdk:"scheduler_name" json:"schedulerName,omitempty"` + Secrets *[]string `tfsdk:"secrets" json:"secrets,omitempty"` + SecurityContext *map[string]string `tfsdk:"security_context" json:"securityContext,omitempty"` + ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` + ServiceScrapeSpec *map[string]string `tfsdk:"service_scrape_spec" json:"serviceScrapeSpec,omitempty"` + ServiceSpec *struct { + Metadata *struct { + Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"metadata" json:"metadata,omitempty"` + Spec *map[string]string `tfsdk:"spec" json:"spec,omitempty"` + UseAsDefault *bool `tfsdk:"use_as_default" json:"useAsDefault,omitempty"` + } `tfsdk:"service_spec" json:"serviceSpec,omitempty"` + StartupProbe *map[string]string `tfsdk:"startup_probe" json:"startupProbe,omitempty"` + Storage *struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + DataSource *struct { + ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` + Kind *string `tfsdk:"kind" json:"kind,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"data_source" json:"dataSource,omitempty"` + DataSourceRef *struct { + ApiGroup *string `tfsdk:"api_group" json:"apiGroup,omitempty"` + Kind *string `tfsdk:"kind" json:"kind,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` + Resources *struct { + Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` + Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` + } `tfsdk:"resources" json:"resources,omitempty"` + Selector *struct { + MatchExpressions *[]struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + Values *[]string `tfsdk:"values" json:"values,omitempty"` + } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` + MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` + } `tfsdk:"selector" json:"selector,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + } `tfsdk:"storage" json:"storage,omitempty"` + StorageDataPath *string `tfsdk:"storage_data_path" json:"storageDataPath,omitempty"` + StorageMetadata *struct { + Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"storage_metadata" json:"storageMetadata,omitempty"` + TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` + Tolerations *[]struct { + Effect *string `tfsdk:"effect" json:"effect,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"tolerations" json:"tolerations,omitempty"` + TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` + UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` + VolumeMounts *[]struct { + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` + Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *OperatorVictoriametricsComVlogsV1Beta1Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_operator_victoriametrics_com_v_logs_v1beta1_manifest" +} + +func (r *OperatorVictoriametricsComVlogsV1Beta1Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "VLogs is the Schema for the vlogs API", + MarkdownDescription: "VLogs is the Schema for the vlogs API", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + MarkdownDescription: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "VLogsSpec defines the desired state of VLogs", + MarkdownDescription: "VLogsSpec defines the desired state of VLogs", + Attributes: map[string]schema.Attribute{ + "affinity": schema.MapAttribute{ + Description: "Affinity If specified, the pod's scheduling constraints.", + MarkdownDescription: "Affinity If specified, the pod's scheduling constraints.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "config_maps": schema.ListAttribute{ + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "containers": schema.ListAttribute{ + Description: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", + MarkdownDescription: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", + ElementType: types.MapType{ElemType: types.StringType}, + Required: false, + Optional: true, + Computed: false, + }, + + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + + "dns_config": schema.SingleNestedAttribute{ + Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", + MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", + Attributes: map[string]schema.Attribute{ + "nameservers": schema.ListAttribute{ + Description: "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", + MarkdownDescription: "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "options": schema.ListNestedAttribute{ + Description: "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", + MarkdownDescription: "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Required.", + MarkdownDescription: "Required.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "searches": schema.ListAttribute{ + Description: "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", + MarkdownDescription: "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "dns_policy": schema.StringAttribute{ + Description: "DNSPolicy sets DNS policy for the pod", + MarkdownDescription: "DNSPolicy sets DNS policy for the pod", + Required: false, + Optional: true, + Computed: false, + }, + + "extra_args": schema.MapAttribute{ + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "extra_envs": schema.ListAttribute{ + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", + ElementType: types.MapType{ElemType: types.StringType}, + Required: false, + Optional: true, + Computed: false, + }, + + "future_retention": schema.StringAttribute{ + Description: "FutureRetention for the stored logs Log entries with timestamps bigger than now+futureRetention are rejected during data ingestion; see https://docs.victoriametrics.com/victorialogs/#retention", + MarkdownDescription: "FutureRetention for the stored logs Log entries with timestamps bigger than now+futureRetention are rejected during data ingestion; see https://docs.victoriametrics.com/victorialogs/#retention", + Required: false, + Optional: true, + Computed: false, + }, + + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + MarkdownDescription: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "host_network": schema.BoolAttribute{ + Description: "HostNetwork controls whether the pod may use the node network namespace", + MarkdownDescription: "HostNetwork controls whether the pod may use the node network namespace", + Required: false, + Optional: true, + Computed: false, + }, + + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "image": schema.SingleNestedAttribute{ + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "PullPolicy describes how to pull docker image", + MarkdownDescription: "PullPolicy describes how to pull docker image", + Required: false, + Optional: true, + Computed: false, + }, + + "repository": schema.StringAttribute{ + Description: "Repository contains name of docker image + it's repository if needed", + MarkdownDescription: "Repository contains name of docker image + it's repository if needed", + Required: false, + Optional: true, + Computed: false, + }, + + "tag": schema.StringAttribute{ + Description: "Tag contains desired docker image version", + MarkdownDescription: "Tag contains desired docker image version", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + MarkdownDescription: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "init_containers": schema.ListAttribute{ + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + ElementType: types.MapType{ElemType: types.StringType}, + Required: false, + Optional: true, + Computed: false, + }, + + "liveness_probe": schema.MapAttribute{ + Description: "LivenessProbe that will be added CRD pod", + MarkdownDescription: "LivenessProbe that will be added CRD pod", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "log_format": schema.StringAttribute{ + Description: "LogFormat for VLogs to be configured with.", + MarkdownDescription: "LogFormat for VLogs to be configured with.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("default", "json"), + }, + }, + + "log_ingested_rows": schema.BoolAttribute{ + Description: "Whether to log all the ingested log entries; this can be useful for debugging of data ingestion; see https://docs.victoriametrics.com/victorialogs/data-ingestion/", + MarkdownDescription: "Whether to log all the ingested log entries; this can be useful for debugging of data ingestion; see https://docs.victoriametrics.com/victorialogs/data-ingestion/", + Required: false, + Optional: true, + Computed: false, + }, + + "log_level": schema.StringAttribute{ + Description: "LogLevel for VictoriaLogs to be configured with.", + MarkdownDescription: "LogLevel for VictoriaLogs to be configured with.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("INFO", "WARN", "ERROR", "FATAL", "PANIC"), + }, + }, + + "log_new_streams": schema.BoolAttribute{ + Description: "LogNewStreams Whether to log creation of new streams; this can be useful for debugging of high cardinality issues with log streams; see https://docs.victoriametrics.com/victorialogs/keyconcepts/#stream-fields", + MarkdownDescription: "LogNewStreams Whether to log creation of new streams; this can be useful for debugging of high cardinality issues with log streams; see https://docs.victoriametrics.com/victorialogs/keyconcepts/#stream-fields", + Required: false, + Optional: true, + Computed: false, + }, + + "min_ready_seconds": schema.Int64Attribute{ + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + Required: false, + Optional: true, + Computed: false, + }, + + "node_selector": schema.MapAttribute{ + Description: "NodeSelector Define which Nodes the Pods are scheduled on.", + MarkdownDescription: "NodeSelector Define which Nodes the Pods are scheduled on.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "paused": schema.BoolAttribute{ + Description: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + MarkdownDescription: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + Required: false, + Optional: true, + Computed: false, + }, + + "pod_metadata": schema.SingleNestedAttribute{ + Description: "PodMetadata configures Labels and Annotations which are propagated to the VLogs pods.", + MarkdownDescription: "PodMetadata configures Labels and Annotations which are propagated to the VLogs pods.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", + MarkdownDescription: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", + MarkdownDescription: "Labels Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + MarkdownDescription: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.StringAttribute{ + Description: "Port listen address", + MarkdownDescription: "Port listen address", + Required: false, + Optional: true, + Computed: false, + }, + + "priority_class_name": schema.StringAttribute{ + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", + Required: false, + Optional: true, + Computed: false, + }, + + "readiness_gates": schema.ListNestedAttribute{ + Description: "ReadinessGates defines pod readiness gates", + MarkdownDescription: "ReadinessGates defines pod readiness gates", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "condition_type": schema.StringAttribute{ + Description: "ConditionType refers to a condition in the pod's condition list with matching type.", + MarkdownDescription: "ConditionType refers to a condition in the pod's condition list with matching type.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "readiness_probe": schema.MapAttribute{ + Description: "ReadinessProbe that will be added CRD pod", + MarkdownDescription: "ReadinessProbe that will be added CRD pod", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "remove_pvc_after_delete": schema.BoolAttribute{ + Description: "RemovePvcAfterDelete - if true, controller adds ownership to pvc and after VLogs object deletion - pvc will be garbage collected by controller manager", + MarkdownDescription: "RemovePvcAfterDelete - if true, controller adds ownership to pvc and after VLogs object deletion - pvc will be garbage collected by controller manager", + Required: false, + Optional: true, + Computed: false, + }, + + "replica_count": schema.Int64Attribute{ + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", + Required: false, + Optional: true, + Computed: false, + }, + + "resources": schema.SingleNestedAttribute{ + Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + Attributes: map[string]schema.Attribute{ + "claims": schema.ListNestedAttribute{ + Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "retention_period": schema.StringAttribute{ + Description: "RetentionPeriod for the stored logs", + MarkdownDescription: "RetentionPeriod for the stored logs", + Required: true, + Optional: false, + Computed: false, + }, + + "revision_history_limit_count": schema.Int64Attribute{ + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + Required: false, + Optional: true, + Computed: false, + }, + + "runtime_class_name": schema.StringAttribute{ + Description: "RuntimeClassName - defines runtime class for kubernetes pod. https://kubernetes.io/docs/concepts/containers/runtime-class/", + MarkdownDescription: "RuntimeClassName - defines runtime class for kubernetes pod. https://kubernetes.io/docs/concepts/containers/runtime-class/", + Required: false, + Optional: true, + Computed: false, + }, + + "scheduler_name": schema.StringAttribute{ + Description: "SchedulerName - defines kubernetes scheduler name", + MarkdownDescription: "SchedulerName - defines kubernetes scheduler name", + Required: false, + Optional: true, + Computed: false, + }, + + "secrets": schema.ListAttribute{ + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "security_context": schema.MapAttribute{ + Description: "SecurityContext holds pod-level security attributes and common container settings. This defaults to the default PodSecurityContext.", + MarkdownDescription: "SecurityContext holds pod-level security attributes and common container settings. This defaults to the default PodSecurityContext.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "service_account_name": schema.StringAttribute{ + Description: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", + Required: false, + Optional: true, + Computed: false, + }, + + "service_scrape_spec": schema.MapAttribute{ + Description: "ServiceScrapeSpec that will be added to vlogs VMServiceScrape spec", + MarkdownDescription: "ServiceScrapeSpec that will be added to vlogs VMServiceScrape spec", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "service_spec": schema.SingleNestedAttribute{ + Description: "ServiceSpec that will be added to vlogs service spec", + MarkdownDescription: "ServiceSpec that will be added to vlogs service spec", + Attributes: map[string]schema.Attribute{ + "metadata": schema.SingleNestedAttribute{ + Description: "EmbeddedObjectMetadata defines objectMeta for additional service.", + MarkdownDescription: "EmbeddedObjectMetadata defines objectMeta for additional service.", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", + MarkdownDescription: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", + MarkdownDescription: "Labels Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + MarkdownDescription: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "spec": schema.MapAttribute{ + Description: "ServiceSpec describes the attributes that a user creates on a service. More info: https://kubernetes.io/docs/concepts/services-networking/service/", + MarkdownDescription: "ServiceSpec describes the attributes that a user creates on a service. More info: https://kubernetes.io/docs/concepts/services-networking/service/", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + + "use_as_default": schema.BoolAttribute{ + Description: "UseAsDefault applies changes from given service definition to the main object Service Changing from headless service to clusterIP or loadbalancer may break cross-component communication", + MarkdownDescription: "UseAsDefault applies changes from given service definition to the main object Service Changing from headless service to clusterIP or loadbalancer may break cross-component communication", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "startup_probe": schema.MapAttribute{ + Description: "StartupProbe that will be added to CRD pod", + MarkdownDescription: "StartupProbe that will be added to CRD pod", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "storage": schema.SingleNestedAttribute{ + Description: "Storage is the definition of how storage will be used by the VLogs by default it's empty dir", + MarkdownDescription: "Storage is the definition of how storage will be used by the VLogs by default it's empty dir", + Attributes: map[string]schema.Attribute{ + "access_modes": schema.ListAttribute{ + Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + MarkdownDescription: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "data_source": schema.SingleNestedAttribute{ + Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", + MarkdownDescription: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", + Attributes: map[string]schema.Attribute{ + "api_group": schema.StringAttribute{ + Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + Required: false, + Optional: true, + Computed: false, + }, + + "kind": schema.StringAttribute{ + Description: "Kind is the type of resource being referenced", + MarkdownDescription: "Kind is the type of resource being referenced", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name is the name of resource being referenced", + MarkdownDescription: "Name is the name of resource being referenced", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "data_source_ref": schema.SingleNestedAttribute{ + Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", + MarkdownDescription: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", + Attributes: map[string]schema.Attribute{ + "api_group": schema.StringAttribute{ + Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + MarkdownDescription: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + Required: false, + Optional: true, + Computed: false, + }, + + "kind": schema.StringAttribute{ + Description: "Kind is the type of resource being referenced", + MarkdownDescription: "Kind is the type of resource being referenced", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name is the name of resource being referenced", + MarkdownDescription: "Name is the name of resource being referenced", + Required: true, + Optional: false, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", + MarkdownDescription: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "resources": schema.SingleNestedAttribute{ + Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + Attributes: map[string]schema.Attribute{ + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "selector": schema.SingleNestedAttribute{ + Description: "selector is a label query over volumes to consider for binding.", + MarkdownDescription: "selector is a label query over volumes to consider for binding.", + Attributes: map[string]schema.Attribute{ + "match_expressions": schema.ListNestedAttribute{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + MarkdownDescription: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "key is the label key that the selector applies to.", + MarkdownDescription: "key is the label key that the selector applies to.", + Required: true, + Optional: false, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + MarkdownDescription: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + Required: true, + Optional: false, + Computed: false, + }, + + "values": schema.ListAttribute{ + Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + MarkdownDescription: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "match_labels": schema.MapAttribute{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + MarkdownDescription: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is 'key', the operator is 'In', and the values array contains only 'value'. The requirements are ANDed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "storage_class_name": schema.StringAttribute{ + Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", + MarkdownDescription: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", + Required: false, + Optional: true, + Computed: false, + }, + + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + + "volume_mode": schema.StringAttribute{ + Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", + MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", + Required: false, + Optional: true, + Computed: false, + }, + + "volume_name": schema.StringAttribute{ + Description: "volumeName is the binding reference to the PersistentVolume backing this claim.", + MarkdownDescription: "volumeName is the binding reference to the PersistentVolume backing this claim.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "storage_data_path": schema.StringAttribute{ + Description: "StorageDataPath disables spec.storage option and overrides arg for victoria-logs binary --storageDataPath, its users responsibility to mount proper device into given path.", + MarkdownDescription: "StorageDataPath disables spec.storage option and overrides arg for victoria-logs binary --storageDataPath, its users responsibility to mount proper device into given path.", + Required: false, + Optional: true, + Computed: false, + }, + + "storage_metadata": schema.SingleNestedAttribute{ + Description: "StorageMeta defines annotations and labels attached to PVC for given vlogs CR", + MarkdownDescription: "StorageMeta defines annotations and labels attached to PVC for given vlogs CR", + Attributes: map[string]schema.Attribute{ + "annotations": schema.MapAttribute{ + Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", + MarkdownDescription: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", + MarkdownDescription: "Labels Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + MarkdownDescription: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "termination_grace_period_seconds": schema.Int64Attribute{ + Description: "TerminationGracePeriodSeconds period for container graceful termination", + MarkdownDescription: "TerminationGracePeriodSeconds period for container graceful termination", + Required: false, + Optional: true, + Computed: false, + }, + + "tolerations": schema.ListNestedAttribute{ + Description: "Tolerations If specified, the pod's tolerations.", + MarkdownDescription: "Tolerations If specified, the pod's tolerations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "topology_spread_constraints": schema.ListAttribute{ + Description: "TopologySpreadConstraints embedded kubernetes pod configuration option, controls how pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/", + MarkdownDescription: "TopologySpreadConstraints embedded kubernetes pod configuration option, controls how pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/", + ElementType: types.MapType{ElemType: types.StringType}, + Required: false, + Optional: true, + Computed: false, + }, + + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + + "use_strict_security": schema.BoolAttribute{ + Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + Required: false, + Optional: true, + Computed: false, + }, + + "volume_mounts": schema.ListNestedAttribute{ + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "mount_path": schema.StringAttribute{ + Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", + MarkdownDescription: "Path within the container at which the volume should be mounted. Must not contain ':'.", + Required: true, + Optional: false, + Computed: false, + }, + + "mount_propagation": schema.StringAttribute{ + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + Required: false, + Optional: true, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "This must match the Name of a Volume.", + MarkdownDescription: "This must match the Name of a Volume.", + Required: true, + Optional: false, + Computed: false, + }, + + "read_only": schema.BoolAttribute{ + Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", + MarkdownDescription: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", + Required: false, + Optional: true, + Computed: false, + }, + + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + + "sub_path": schema.StringAttribute{ + Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", + MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", + Required: false, + Optional: true, + Computed: false, + }, + + "sub_path_expr": schema.StringAttribute{ + Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", + MarkdownDescription: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to '' (volume's root). SubPathExpr and SubPath are mutually exclusive.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "volumes": schema.ListAttribute{ + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + ElementType: types.MapType{ElemType: types.StringType}, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + } +} + +func (r *OperatorVictoriametricsComVlogsV1Beta1Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest") + + var model OperatorVictoriametricsComVlogsV1Beta1ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("operator.victoriametrics.com/v1beta1") + model.Kind = pointer.String("VLogs") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go new file mode 100644 index 000000000..383a4fb00 --- /dev/null +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package operator_victoriametrics_com_v1beta1_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/operator_victoriametrics_com_v1beta1" + "testing" +) + +func TestOperatorVictoriametricsComVlogsV1Beta1Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVlogsV1Beta1Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest.go index 64f5ef2bd..7749a2f18 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest.go @@ -134,9 +134,6 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -148,15 +145,17 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` Status *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` - Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` - Conditions *[]struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + AllocatedResourceStatuses *map[string]string `tfsdk:"allocated_resource_statuses" json:"allocatedResourceStatuses,omitempty"` + AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` + Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` + Conditions *[]struct { LastProbeTime *string `tfsdk:"last_probe_time" json:"lastProbeTime,omitempty"` LastTransitionTime *string `tfsdk:"last_transition_time" json:"lastTransitionTime,omitempty"` Message *string `tfsdk:"message" json:"message,omitempty"` @@ -164,14 +163,27 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { Status *string `tfsdk:"status" json:"status,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"conditions" json:"conditions,omitempty"` - Phase *string `tfsdk:"phase" json:"phase,omitempty"` - ResizeStatus *string `tfsdk:"resize_status" json:"resizeStatus,omitempty"` + CurrentVolumeAttributesClassName *string `tfsdk:"current_volume_attributes_class_name" json:"currentVolumeAttributesClassName,omitempty"` + ModifyVolumeStatus *struct { + Status *string `tfsdk:"status" json:"status,omitempty"` + TargetVolumeAttributesClassName *string `tfsdk:"target_volume_attributes_class_name" json:"targetVolumeAttributesClassName,omitempty"` + } `tfsdk:"modify_volume_status" json:"modifyVolumeStatus,omitempty"` + Phase *string `tfsdk:"phase" json:"phase,omitempty"` } `tfsdk:"status" json:"status,omitempty"` } `tfsdk:"claim_templates" json:"claimTemplates,omitempty"` - ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` - ConfigReloaderExtraArgs *map[string]string `tfsdk:"config_reloader_extra_args" json:"configReloaderExtraArgs,omitempty"` - Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` - DnsConfig *struct { + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + ConfigReloaderExtraArgs *map[string]string `tfsdk:"config_reloader_extra_args" json:"configReloaderExtraArgs,omitempty"` + ConfigReloaderImageTag *string `tfsdk:"config_reloader_image_tag" json:"configReloaderImageTag,omitempty"` + ConfigReloaderResources *struct { + Claims *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"claims" json:"claims,omitempty"` + Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` + Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` + } `tfsdk:"config_reloader_resources" json:"configReloaderResources,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -184,8 +196,12 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { ExternalLabels *map[string]string `tfsdk:"external_labels" json:"externalLabels,omitempty"` ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Host_aliases *[]struct { + HostAliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` Ip *string `tfsdk:"ip" json:"ip,omitempty"` } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` @@ -399,16 +415,25 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { } `tfsdk:"oauth2" json:"oauth2,omitempty"` SendTimeout *string `tfsdk:"send_timeout" json:"sendTimeout,omitempty"` StreamAggrConfig *struct { - DedupInterval *string `tfsdk:"dedup_interval" json:"dedupInterval,omitempty"` - DropInput *bool `tfsdk:"drop_input" json:"dropInput,omitempty"` - KeepInput *bool `tfsdk:"keep_input" json:"keepInput,omitempty"` - Rules *[]struct { - By *[]string `tfsdk:"by" json:"by,omitempty"` - Dedup_interval *string `tfsdk:"dedup_interval" json:"dedup_interval,omitempty"` - Drop_input_labels *[]string `tfsdk:"drop_input_labels" json:"drop_input_labels,omitempty"` - Flush_on_shutdown *bool `tfsdk:"flush_on_shutdown" json:"flush_on_shutdown,omitempty"` - Ignore_old_samples *bool `tfsdk:"ignore_old_samples" json:"ignore_old_samples,omitempty"` - Input_relabel_configs *[]struct { + Configmap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"configmap" json:"configmap,omitempty"` + DedupInterval *string `tfsdk:"dedup_interval" json:"dedupInterval,omitempty"` + DropInput *bool `tfsdk:"drop_input" json:"dropInput,omitempty"` + DropInputLabels *[]string `tfsdk:"drop_input_labels" json:"dropInputLabels,omitempty"` + IgnoreFirstIntervals *int64 `tfsdk:"ignore_first_intervals" json:"ignoreFirstIntervals,omitempty"` + IgnoreOldSamples *bool `tfsdk:"ignore_old_samples" json:"ignoreOldSamples,omitempty"` + KeepInput *bool `tfsdk:"keep_input" json:"keepInput,omitempty"` + Rules *[]struct { + By *[]string `tfsdk:"by" json:"by,omitempty"` + Dedup_interval *string `tfsdk:"dedup_interval" json:"dedup_interval,omitempty"` + Drop_input_labels *[]string `tfsdk:"drop_input_labels" json:"drop_input_labels,omitempty"` + Flush_on_shutdown *bool `tfsdk:"flush_on_shutdown" json:"flush_on_shutdown,omitempty"` + Ignore_first_intervals *int64 `tfsdk:"ignore_first_intervals" json:"ignore_first_intervals,omitempty"` + Ignore_old_samples *bool `tfsdk:"ignore_old_samples" json:"ignore_old_samples,omitempty"` + Input_relabel_configs *[]struct { Action *string `tfsdk:"action" json:"action,omitempty"` If *map[string]string `tfsdk:"if" json:"if,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` @@ -613,9 +638,6 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -627,15 +649,17 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` Status *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` - Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` - Conditions *[]struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + AllocatedResourceStatuses *map[string]string `tfsdk:"allocated_resource_statuses" json:"allocatedResourceStatuses,omitempty"` + AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` + Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` + Conditions *[]struct { LastProbeTime *string `tfsdk:"last_probe_time" json:"lastProbeTime,omitempty"` LastTransitionTime *string `tfsdk:"last_transition_time" json:"lastTransitionTime,omitempty"` Message *string `tfsdk:"message" json:"message,omitempty"` @@ -643,8 +667,12 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { Status *string `tfsdk:"status" json:"status,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"conditions" json:"conditions,omitempty"` - Phase *string `tfsdk:"phase" json:"phase,omitempty"` - ResizeStatus *string `tfsdk:"resize_status" json:"resizeStatus,omitempty"` + CurrentVolumeAttributesClassName *string `tfsdk:"current_volume_attributes_class_name" json:"currentVolumeAttributesClassName,omitempty"` + ModifyVolumeStatus *struct { + Status *string `tfsdk:"status" json:"status,omitempty"` + TargetVolumeAttributesClassName *string `tfsdk:"target_volume_attributes_class_name" json:"targetVolumeAttributesClassName,omitempty"` + } `tfsdk:"modify_volume_status" json:"modifyVolumeStatus,omitempty"` + Phase *string `tfsdk:"phase" json:"phase,omitempty"` } `tfsdk:"status" json:"status,omitempty"` } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` } `tfsdk:"stateful_storage" json:"statefulStorage,omitempty"` @@ -676,6 +704,62 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"static_scrape_selector" json:"staticScrapeSelector,omitempty"` + StreamAggrConfig *struct { + Configmap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"configmap" json:"configmap,omitempty"` + DedupInterval *string `tfsdk:"dedup_interval" json:"dedupInterval,omitempty"` + DropInput *bool `tfsdk:"drop_input" json:"dropInput,omitempty"` + DropInputLabels *[]string `tfsdk:"drop_input_labels" json:"dropInputLabels,omitempty"` + IgnoreFirstIntervals *int64 `tfsdk:"ignore_first_intervals" json:"ignoreFirstIntervals,omitempty"` + IgnoreOldSamples *bool `tfsdk:"ignore_old_samples" json:"ignoreOldSamples,omitempty"` + KeepInput *bool `tfsdk:"keep_input" json:"keepInput,omitempty"` + Rules *[]struct { + By *[]string `tfsdk:"by" json:"by,omitempty"` + Dedup_interval *string `tfsdk:"dedup_interval" json:"dedup_interval,omitempty"` + Drop_input_labels *[]string `tfsdk:"drop_input_labels" json:"drop_input_labels,omitempty"` + Flush_on_shutdown *bool `tfsdk:"flush_on_shutdown" json:"flush_on_shutdown,omitempty"` + Ignore_first_intervals *int64 `tfsdk:"ignore_first_intervals" json:"ignore_first_intervals,omitempty"` + Ignore_old_samples *bool `tfsdk:"ignore_old_samples" json:"ignore_old_samples,omitempty"` + Input_relabel_configs *[]struct { + Action *string `tfsdk:"action" json:"action,omitempty"` + If *map[string]string `tfsdk:"if" json:"if,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Match *string `tfsdk:"match" json:"match,omitempty"` + Modulus *int64 `tfsdk:"modulus" json:"modulus,omitempty"` + Regex *map[string]string `tfsdk:"regex" json:"regex,omitempty"` + Replacement *string `tfsdk:"replacement" json:"replacement,omitempty"` + Separator *string `tfsdk:"separator" json:"separator,omitempty"` + SourceLabels *[]string `tfsdk:"source_labels" json:"sourceLabels,omitempty"` + Source_labels *[]string `tfsdk:"source_labels" json:"source_labels,omitempty"` + TargetLabel *string `tfsdk:"target_label" json:"targetLabel,omitempty"` + Target_label *string `tfsdk:"target_label" json:"target_label,omitempty"` + } `tfsdk:"input_relabel_configs" json:"input_relabel_configs,omitempty"` + Interval *string `tfsdk:"interval" json:"interval,omitempty"` + Keep_metric_names *bool `tfsdk:"keep_metric_names" json:"keep_metric_names,omitempty"` + Match *map[string]string `tfsdk:"match" json:"match,omitempty"` + No_align_flush_to_interval *bool `tfsdk:"no_align_flush_to_interval" json:"no_align_flush_to_interval,omitempty"` + Output_relabel_configs *[]struct { + Action *string `tfsdk:"action" json:"action,omitempty"` + If *map[string]string `tfsdk:"if" json:"if,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Match *string `tfsdk:"match" json:"match,omitempty"` + Modulus *int64 `tfsdk:"modulus" json:"modulus,omitempty"` + Regex *map[string]string `tfsdk:"regex" json:"regex,omitempty"` + Replacement *string `tfsdk:"replacement" json:"replacement,omitempty"` + Separator *string `tfsdk:"separator" json:"separator,omitempty"` + SourceLabels *[]string `tfsdk:"source_labels" json:"sourceLabels,omitempty"` + Source_labels *[]string `tfsdk:"source_labels" json:"source_labels,omitempty"` + TargetLabel *string `tfsdk:"target_label" json:"targetLabel,omitempty"` + Target_label *string `tfsdk:"target_label" json:"target_label,omitempty"` + } `tfsdk:"output_relabel_configs" json:"output_relabel_configs,omitempty"` + Outputs *[]string `tfsdk:"outputs" json:"outputs,omitempty"` + Staleness_interval *string `tfsdk:"staleness_interval" json:"staleness_interval,omitempty"` + Without *[]string `tfsdk:"without" json:"without,omitempty"` + } `tfsdk:"rules" json:"rules,omitempty"` + } `tfsdk:"stream_aggr_config" json:"streamAggrConfig,omitempty"` TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` Tolerations *[]struct { Effect *string `tfsdk:"effect" json:"effect,omitempty"` @@ -686,15 +770,18 @@ type OperatorVictoriametricsComVmagentV1Beta1ManifestData struct { } `tfsdk:"tolerations" json:"tolerations,omitempty"` TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` UpdateStrategy *string `tfsdk:"update_strategy" json:"updateStrategy,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` + UseVMConfigReloader *bool `tfsdk:"use_vm_config_reloader" json:"useVMConfigReloader,omitempty"` VmAgentExternalLabelName *string `tfsdk:"vm_agent_external_label_name" json:"vmAgentExternalLabelName,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` @@ -798,8 +885,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -844,8 +931,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -856,8 +943,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -877,16 +964,16 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -897,8 +984,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -967,8 +1054,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1000,8 +1087,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1050,8 +1137,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1083,8 +1170,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1145,8 +1232,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1196,8 +1283,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1226,8 +1313,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "arbitrary_fs_access_through_s_ms": schema.SingleNestedAttribute{ - Description: "ArbitraryFSAccessThroughSMs configures whether configuration based on a service scrape can access arbitrary files on the file system of the VMAgent container e.g. bearer token files.", - MarkdownDescription: "ArbitraryFSAccessThroughSMs configures whether configuration based on a service scrape can access arbitrary files on the file system of the VMAgent container e.g. bearer token files.", + Description: "ArbitraryFSAccessThroughSMs configures whether configuration based on EndpointAuth can access arbitrary files on the file system of the VMAgent container e.g. bearer token files, basic auth, tls certs", + MarkdownDescription: "ArbitraryFSAccessThroughSMs configures whether configuration based on EndpointAuth can access arbitrary files on the file system of the VMAgent container e.g. bearer token files, basic auth, tls certs", Attributes: map[string]schema.Attribute{ "deny": schema.BoolAttribute{ Description: "", @@ -1363,25 +1450,6 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -1467,6 +1535,14 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -1501,9 +1577,18 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "allocated_resource_statuses": schema.MapAttribute{ + Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "allocated_resources": schema.MapAttribute{ - Description: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", ElementType: types.StringType, Required: false, Optional: true, @@ -1520,8 +1605,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "conditions": schema.ListNestedAttribute{ - Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "last_probe_time": schema.StringAttribute{ @@ -1555,8 +1640,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "reason": schema.StringAttribute{ - Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", - MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", + Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", + MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", Required: false, Optional: true, Computed: false, @@ -1584,17 +1669,42 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "phase": schema.StringAttribute{ - Description: "phase represents the current phase of PersistentVolumeClaim.", - MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", + "current_volume_attributes_class_name": schema.StringAttribute{ + Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", Required: false, Optional: true, Computed: false, }, - "resize_status": schema.StringAttribute{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + "modify_volume_status": schema.SingleNestedAttribute{ + Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + Attributes: map[string]schema.Attribute{ + "status": schema.StringAttribute{ + Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + MarkdownDescription: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + Required: true, + Optional: false, + Computed: false, + }, + + "target_volume_attributes_class_name": schema.StringAttribute{ + Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + MarkdownDescription: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "phase": schema.StringAttribute{ + Description: "phase represents the current phase of PersistentVolumeClaim.", + MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", Required: false, Optional: true, Computed: false, @@ -1612,8 +1722,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the vmagent object, which shall be mounted into the vmagent Pods. will be mounted at path /etc/vm/configs", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the vmagent object, which shall be mounted into the vmagent Pods. will be mounted at path /etc/vm/configs", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -1629,6 +1739,60 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "config_reloader_image_tag": schema.StringAttribute{ + Description: "ConfigReloaderImageTag defines image:tag for config-reloader container", + MarkdownDescription: "ConfigReloaderImageTag defines image:tag for config-reloader container", + Required: false, + Optional: true, + Computed: false, + }, + + "config_reloader_resources": schema.SingleNestedAttribute{ + Description: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + Attributes: map[string]schema.Attribute{ + "claims": schema.ListNestedAttribute{ + Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "containers": schema.ListAttribute{ Description: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", MarkdownDescription: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", @@ -1638,6 +1802,14 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "dns_config": schema.SingleNestedAttribute{ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", @@ -1693,8 +1865,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "dns_policy": schema.StringAttribute{ - Description: "DNSPolicy set DNS policy for the pod", - MarkdownDescription: "DNSPolicy set DNS policy for the pod", + Description: "DNSPolicy sets DNS policy for the pod", + MarkdownDescription: "DNSPolicy sets DNS policy for the pod", Required: false, Optional: true, Computed: false, @@ -1718,8 +1890,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "extra_args": schema.MapAttribute{ - Description: "ExtraArgs that will be passed to VMAgent pod for example remoteWrite.tmpDataPath: /tmp it would be converted to flag --remoteWrite.tmpDataPath=/tmp", - MarkdownDescription: "ExtraArgs that will be passed to VMAgent pod for example remoteWrite.tmpDataPath: /tmp it would be converted to flag --remoteWrite.tmpDataPath=/tmp", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, @@ -1727,14 +1899,42 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMAgent pod", - MarkdownDescription: "ExtraEnvs that will be added to VMAgent pod", + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + MarkdownDescription: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "host_network": schema.BoolAttribute{ Description: "HostNetwork controls whether the pod may use the node network namespace", MarkdownDescription: "HostNetwork controls whether the pod may use the node network namespace", @@ -1744,8 +1944,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "host_aliases": schema.ListNestedAttribute{ - Description: "HostAliases provides mapping between ip and hostnames, that would be propagated to pod, cannot be used with HostNetwork.", - MarkdownDescription: "HostAliases provides mapping between ip and hostnames, that would be propagated to pod, cannot be used with HostNetwork.", + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "hostnames": schema.ListAttribute{ @@ -1760,8 +1960,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont "ip": schema.StringAttribute{ Description: "IP address of the host file entry.", MarkdownDescription: "IP address of the host file entry.", - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, }, @@ -1772,16 +1972,16 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "ignore_namespace_selectors": schema.BoolAttribute{ - Description: "IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from the podscrape and vmservicescrape configs, and they will only discover endpoints within their current namespace. Defaults to false.", - MarkdownDescription: "IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from the podscrape and vmservicescrape configs, and they will only discover endpoints within their current namespace. Defaults to false.", + Description: "IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from scrape objects, and they will only discover endpoints within their current namespace. Defaults to false.", + MarkdownDescription: "IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from scrape objects, and they will only discover endpoints within their current namespace. Defaults to false.", Required: false, Optional: true, Computed: false, }, "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMAgent if no specified operator uses default config version", - MarkdownDescription: "Image - docker image settings for VMAgent if no specified operator uses default config version", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -1818,8 +2018,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1840,8 +2040,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the vmagent configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the vmagent configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -1993,12 +2193,12 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "license": schema.SingleNestedAttribute{ - Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", - MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", + Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", + MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", - MarkdownDescription: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", + Description: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", + MarkdownDescription: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", Required: false, Optional: true, Computed: false, @@ -2017,8 +2217,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2082,8 +2282,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "min_ready_seconds": schema.Int64Attribute{ - Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", - MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", Required: false, Optional: true, Computed: false, @@ -2310,8 +2510,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "override_honor_labels": schema.BoolAttribute{ - Description: "OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceScrape or PodScrape to true, this overrides honor_labels to false.", - MarkdownDescription: "OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in ServiceScrape or PodScrape to true, this overrides honor_labels to false.", + Description: "OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in scrape objects to true, this overrides honor_labels to false.", + MarkdownDescription: "OverrideHonorLabels if set to true overrides all user configured honor_labels. If HonorLabels is set in scrape objects to true, this overrides honor_labels to false.", Required: false, Optional: true, Computed: false, @@ -2614,8 +2814,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName assigned to the Pods", - MarkdownDescription: "PriorityClassName assigned to the Pods", + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", Required: false, Optional: true, Computed: false, @@ -2865,8 +3065,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2895,8 +3095,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2907,8 +3107,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2928,16 +3128,16 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2948,8 +3148,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2986,8 +3186,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3131,8 +3331,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3164,8 +3364,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3202,8 +3402,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3279,6 +3479,39 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Description: "StreamAggrConfig defines stream aggregation configuration for VMAgent for -remoteWrite.url", MarkdownDescription: "StreamAggrConfig defines stream aggregation configuration for VMAgent for -remoteWrite.url", Attributes: map[string]schema.Attribute{ + "configmap": schema.SingleNestedAttribute{ + Description: "ConfigMap with stream aggregation rules", + MarkdownDescription: "ConfigMap with stream aggregation rules", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "dedup_interval": schema.StringAttribute{ Description: "Allows setting different de-duplication intervals per each configured remote storage", MarkdownDescription: "Allows setting different de-duplication intervals per each configured remote storage", @@ -3295,6 +3528,31 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "drop_input_labels": schema.ListAttribute{ + Description: "labels to drop from samples for aggregator before stream de-duplication and aggregation", + MarkdownDescription: "labels to drop from samples for aggregator before stream de-duplication and aggregation", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_first_intervals": schema.Int64Attribute{ + Description: "IgnoreFirstIntervals instructs to ignore first interval", + MarkdownDescription: "IgnoreFirstIntervals instructs to ignore first interval", + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_old_samples": schema.BoolAttribute{ + Description: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + MarkdownDescription: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + Required: false, + Optional: true, + Computed: false, + }, + "keep_input": schema.BoolAttribute{ Description: "Allows writing both raw and aggregate data", MarkdownDescription: "Allows writing both raw and aggregate data", @@ -3342,6 +3600,14 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "ignore_first_intervals": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "ignore_old_samples": schema.BoolAttribute{ Description: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", MarkdownDescription: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", @@ -3600,8 +3866,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, }, }, - Required: true, - Optional: false, + Required: false, + Optional: true, Computed: false, }, }, @@ -3631,8 +3897,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3664,8 +3930,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3714,8 +3980,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3747,8 +4013,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3809,8 +4075,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3863,8 +4129,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3884,8 +4150,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, @@ -3954,8 +4220,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "use_multi_tenant_mode": schema.BoolAttribute{ - Description: "Configures vmagent in multi-tenant mode with direct cluster support docs https://docs.victoriametrics.com/vmagent.html#multitenancy it's global setting and affects all remote storage configurations", - MarkdownDescription: "Configures vmagent in multi-tenant mode with direct cluster support docs https://docs.victoriametrics.com/vmagent.html#multitenancy it's global setting and affects all remote storage configurations", + Description: "Configures vmagent accepting data via the same multitenant endpoints as vminsert at VictoriaMetrics cluster does, see [here](https://docs.victoriametrics.com/vmagent/#multitenancy). it's global setting and affects all remote storage configurations", + MarkdownDescription: "Configures vmagent accepting data via the same multitenant endpoints as vminsert at VictoriaMetrics cluster does, see [here](https://docs.victoriametrics.com/vmagent/#multitenancy). it's global setting and affects all remote storage configurations", Required: false, Optional: true, Computed: false, @@ -3967,16 +4233,16 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount is the expected size of the VMAgent cluster. The controller will eventually make the size of the running cluster equal to the expected size. NOTE enable VMSingle deduplication for replica usage", - MarkdownDescription: "ReplicaCount is the expected size of the VMAgent cluster. The controller will eventually make the size of the running cluster equal to the expected size. NOTE enable VMSingle deduplication for replica usage", + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", Required: false, Optional: true, Computed: false, }, "resources": schema.SingleNestedAttribute{ - Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not specified - default setting will be used", - MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not specified - default setting will be used", + Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", Attributes: map[string]schema.Attribute{ "claims": schema.ListNestedAttribute{ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", @@ -4021,8 +4287,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -4295,8 +4561,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the vmagent object, which shall be mounted into the vmagent Pods. will be mounted at path /etc/vm/secrets", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the vmagent object, which shall be mounted into the vmagent Pods. will be mounted at path /etc/vm/secrets", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -4321,8 +4587,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to use to run the VMAgent Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the VMAgent Pods.", + Description: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", Required: false, Optional: true, Computed: false, @@ -4602,8 +4868,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "shard_count": schema.Int64Attribute{ - Description: "ShardCount - numbers of shards of VMAgent in this case operator will use 1 deployment/sts per shard with replicas count according to spec.replicas, see https://docs.victoriametrics.com/vmagent.html#scraping-big-number-of-targets", - MarkdownDescription: "ShardCount - numbers of shards of VMAgent in this case operator will use 1 deployment/sts per shard with replicas count according to spec.replicas, see https://docs.victoriametrics.com/vmagent.html#scraping-big-number-of-targets", + Description: "ShardCount - numbers of shards of VMAgent in this case operator will use 1 deployment/sts per shard with replicas count according to spec.replicas, see [here](https://docs.victoriametrics.com/vmagent/#scraping-big-number-of-targets)", + MarkdownDescription: "ShardCount - numbers of shards of VMAgent in this case operator will use 1 deployment/sts per shard with replicas count according to spec.replicas, see [here](https://docs.victoriametrics.com/vmagent/#scraping-big-number-of-targets)", Required: false, Optional: true, Computed: false, @@ -4817,25 +5083,6 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -4921,6 +5168,14 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -4955,9 +5210,18 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "allocated_resource_statuses": schema.MapAttribute{ + Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "allocated_resources": schema.MapAttribute{ - Description: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", ElementType: types.StringType, Required: false, Optional: true, @@ -4974,8 +5238,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "conditions": schema.ListNestedAttribute{ - Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "last_probe_time": schema.StringAttribute{ @@ -5009,8 +5273,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "reason": schema.StringAttribute{ - Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", - MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", + Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", + MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", Required: false, Optional: true, Computed: false, @@ -5038,17 +5302,42 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "phase": schema.StringAttribute{ - Description: "phase represents the current phase of PersistentVolumeClaim.", - MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", + "current_volume_attributes_class_name": schema.StringAttribute{ + Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", Required: false, Optional: true, Computed: false, }, - "resize_status": schema.StringAttribute{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + "modify_volume_status": schema.SingleNestedAttribute{ + Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + Attributes: map[string]schema.Attribute{ + "status": schema.StringAttribute{ + Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + MarkdownDescription: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + Required: true, + Optional: false, + Computed: false, + }, + + "target_volume_attributes_class_name": schema.StringAttribute{ + Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + MarkdownDescription: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "phase": schema.StringAttribute{ + Description: "phase represents the current phase of PersistentVolumeClaim.", + MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", Required: false, Optional: true, Computed: false, @@ -5272,13 +5561,448 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "termination_grace_period_seconds": schema.Int64Attribute{ - Description: "TerminationGracePeriodSeconds period for container graceful termination", - MarkdownDescription: "TerminationGracePeriodSeconds period for container graceful termination", - Required: false, - Optional: true, - Computed: false, - }, + "stream_aggr_config": schema.SingleNestedAttribute{ + Description: "StreamAggrConfig defines global stream aggregation configuration for VMAgent", + MarkdownDescription: "StreamAggrConfig defines global stream aggregation configuration for VMAgent", + Attributes: map[string]schema.Attribute{ + "configmap": schema.SingleNestedAttribute{ + Description: "ConfigMap with stream aggregation rules", + MarkdownDescription: "ConfigMap with stream aggregation rules", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "dedup_interval": schema.StringAttribute{ + Description: "Allows setting different de-duplication intervals per each configured remote storage", + MarkdownDescription: "Allows setting different de-duplication intervals per each configured remote storage", + Required: false, + Optional: true, + Computed: false, + }, + + "drop_input": schema.BoolAttribute{ + Description: "Allow drop all the input samples after the aggregation", + MarkdownDescription: "Allow drop all the input samples after the aggregation", + Required: false, + Optional: true, + Computed: false, + }, + + "drop_input_labels": schema.ListAttribute{ + Description: "labels to drop from samples for aggregator before stream de-duplication and aggregation", + MarkdownDescription: "labels to drop from samples for aggregator before stream de-duplication and aggregation", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_first_intervals": schema.Int64Attribute{ + Description: "IgnoreFirstIntervals instructs to ignore first interval", + MarkdownDescription: "IgnoreFirstIntervals instructs to ignore first interval", + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_old_samples": schema.BoolAttribute{ + Description: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + MarkdownDescription: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + Required: false, + Optional: true, + Computed: false, + }, + + "keep_input": schema.BoolAttribute{ + Description: "Allows writing both raw and aggregate data", + MarkdownDescription: "Allows writing both raw and aggregate data", + Required: false, + Optional: true, + Computed: false, + }, + + "rules": schema.ListNestedAttribute{ + Description: "Stream aggregation rules", + MarkdownDescription: "Stream aggregation rules", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "by": schema.ListAttribute{ + Description: "By is an optional list of labels for grouping input series. See also Without. If neither By nor Without are set, then the Outputs are calculated individually per each input time series.", + MarkdownDescription: "By is an optional list of labels for grouping input series. See also Without. If neither By nor Without are set, then the Outputs are calculated individually per each input time series.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "dedup_interval": schema.StringAttribute{ + Description: "DedupInterval is an optional interval for deduplication.", + MarkdownDescription: "DedupInterval is an optional interval for deduplication.", + Required: false, + Optional: true, + Computed: false, + }, + + "drop_input_labels": schema.ListAttribute{ + Description: "DropInputLabels is an optional list with labels, which must be dropped before further processing of input samples. Labels are dropped before de-duplication and aggregation.", + MarkdownDescription: "DropInputLabels is an optional list with labels, which must be dropped before further processing of input samples. Labels are dropped before de-duplication and aggregation.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "flush_on_shutdown": schema.BoolAttribute{ + Description: "FlushOnShutdown defines whether to flush the aggregation state on process termination or config reload. Is 'false' by default. It is not recommended changing this setting, unless unfinished aggregations states are preferred to missing data points.", + MarkdownDescription: "FlushOnShutdown defines whether to flush the aggregation state on process termination or config reload. Is 'false' by default. It is not recommended changing this setting, unless unfinished aggregations states are preferred to missing data points.", + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_first_intervals": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_old_samples": schema.BoolAttribute{ + Description: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + MarkdownDescription: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + Required: false, + Optional: true, + Computed: false, + }, + + "input_relabel_configs": schema.ListNestedAttribute{ + Description: "InputRelabelConfigs is an optional relabeling rules, which are applied on the input before aggregation.", + MarkdownDescription: "InputRelabelConfigs is an optional relabeling rules, which are applied on the input before aggregation.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "action": schema.StringAttribute{ + Description: "Action to perform based on regex matching. Default is 'replace'", + MarkdownDescription: "Action to perform based on regex matching. Default is 'replace'", + Required: false, + Optional: true, + Computed: false, + }, + + "if": schema.MapAttribute{ + Description: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + MarkdownDescription: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels is used together with Match for 'action: graphite'", + MarkdownDescription: "Labels is used together with Match for 'action: graphite'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "match": schema.StringAttribute{ + Description: "Match is used together with Labels for 'action: graphite'", + MarkdownDescription: "Match is used together with Labels for 'action: graphite'", + Required: false, + Optional: true, + Computed: false, + }, + + "modulus": schema.Int64Attribute{ + Description: "Modulus to take of the hash of the source label values.", + MarkdownDescription: "Modulus to take of the hash of the source label values.", + Required: false, + Optional: true, + Computed: false, + }, + + "regex": schema.MapAttribute{ + Description: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + MarkdownDescription: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "replacement": schema.StringAttribute{ + Description: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + MarkdownDescription: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + Required: false, + Optional: true, + Computed: false, + }, + + "separator": schema.StringAttribute{ + Description: "Separator placed between concatenated source label values. default is ';'.", + MarkdownDescription: "Separator placed between concatenated source label values. default is ';'.", + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + MarkdownDescription: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + MarkdownDescription: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "interval": schema.StringAttribute{ + Description: "Interval is the interval between aggregations.", + MarkdownDescription: "Interval is the interval between aggregations.", + Required: true, + Optional: false, + Computed: false, + }, + + "keep_metric_names": schema.BoolAttribute{ + Description: "KeepMetricNames instructs to leave metric names as is for the output time series without adding any suffix.", + MarkdownDescription: "KeepMetricNames instructs to leave metric names as is for the output time series without adding any suffix.", + Required: false, + Optional: true, + Computed: false, + }, + + "match": schema.MapAttribute{ + Description: "Match is a label selector (or list of label selectors) for filtering time series for the given selector. If the match isn't set, then all the input time series are processed.", + MarkdownDescription: "Match is a label selector (or list of label selectors) for filtering time series for the given selector. If the match isn't set, then all the input time series are processed.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "no_align_flush_to_interval": schema.BoolAttribute{ + Description: "NoAlignFlushToInterval disables aligning of flushes to multiples of Interval. By default flushes are aligned to Interval.", + MarkdownDescription: "NoAlignFlushToInterval disables aligning of flushes to multiples of Interval. By default flushes are aligned to Interval.", + Required: false, + Optional: true, + Computed: false, + }, + + "output_relabel_configs": schema.ListNestedAttribute{ + Description: "OutputRelabelConfigs is an optional relabeling rules, which are applied on the aggregated output before being sent to remote storage.", + MarkdownDescription: "OutputRelabelConfigs is an optional relabeling rules, which are applied on the aggregated output before being sent to remote storage.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "action": schema.StringAttribute{ + Description: "Action to perform based on regex matching. Default is 'replace'", + MarkdownDescription: "Action to perform based on regex matching. Default is 'replace'", + Required: false, + Optional: true, + Computed: false, + }, + + "if": schema.MapAttribute{ + Description: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + MarkdownDescription: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels is used together with Match for 'action: graphite'", + MarkdownDescription: "Labels is used together with Match for 'action: graphite'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "match": schema.StringAttribute{ + Description: "Match is used together with Labels for 'action: graphite'", + MarkdownDescription: "Match is used together with Labels for 'action: graphite'", + Required: false, + Optional: true, + Computed: false, + }, + + "modulus": schema.Int64Attribute{ + Description: "Modulus to take of the hash of the source label values.", + MarkdownDescription: "Modulus to take of the hash of the source label values.", + Required: false, + Optional: true, + Computed: false, + }, + + "regex": schema.MapAttribute{ + Description: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + MarkdownDescription: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "replacement": schema.StringAttribute{ + Description: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + MarkdownDescription: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + Required: false, + Optional: true, + Computed: false, + }, + + "separator": schema.StringAttribute{ + Description: "Separator placed between concatenated source label values. default is ';'.", + MarkdownDescription: "Separator placed between concatenated source label values. default is ';'.", + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + MarkdownDescription: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + MarkdownDescription: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "outputs": schema.ListAttribute{ + Description: "Outputs is a list of output aggregate functions to produce. The following names are allowed: - total - aggregates input counters - increase - counts the increase over input counters - count_series - counts the input series - count_samples - counts the input samples - sum_samples - sums the input samples - last - the last biggest sample value - min - the minimum sample value - max - the maximum sample value - avg - the average value across all the samples - stddev - standard deviation across all the samples - stdvar - standard variance across all the samples - histogram_bucket - creates VictoriaMetrics histogram for input samples - quantiles(phi1, ..., phiN) - quantiles' estimation for phi in the range [0..1] The output time series will have the following names: input_name:aggr__", + MarkdownDescription: "Outputs is a list of output aggregate functions to produce. The following names are allowed: - total - aggregates input counters - increase - counts the increase over input counters - count_series - counts the input series - count_samples - counts the input samples - sum_samples - sums the input samples - last - the last biggest sample value - min - the minimum sample value - max - the maximum sample value - avg - the average value across all the samples - stddev - standard deviation across all the samples - stdvar - standard variance across all the samples - histogram_bucket - creates VictoriaMetrics histogram for input samples - quantiles(phi1, ..., phiN) - quantiles' estimation for phi in the range [0..1] The output time series will have the following names: input_name:aggr__", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + + "staleness_interval": schema.StringAttribute{ + Description: "Staleness interval is interval after which the series state will be reset if no samples have been sent during it. The parameter is only relevant for outputs: total, total_prometheus, increase, increase_prometheus and histogram_bucket.", + MarkdownDescription: "Staleness interval is interval after which the series state will be reset if no samples have been sent during it. The parameter is only relevant for outputs: total, total_prometheus, increase, increase_prometheus and histogram_bucket.", + Required: false, + Optional: true, + Computed: false, + }, + + "without": schema.ListAttribute{ + Description: "Without is an optional list of labels, which must be excluded when grouping input series. See also By. If neither By nor Without are set, then the Outputs are calculated individually per each input time series.", + MarkdownDescription: "Without is an optional list of labels, which must be excluded when grouping input series. See also By. If neither By nor Without are set, then the Outputs are calculated individually per each input time series.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "termination_grace_period_seconds": schema.Int64Attribute{ + Description: "TerminationGracePeriodSeconds period for container graceful termination", + MarkdownDescription: "TerminationGracePeriodSeconds period for container graceful termination", + Required: false, + Optional: true, + Computed: false, + }, "tolerations": schema.ListNestedAttribute{ Description: "Tolerations If specified, the pod's tolerations.", @@ -5351,6 +6075,14 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + "use_strict_security": schema.BoolAttribute{ Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", @@ -5359,6 +6091,14 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "use_vm_config_reloader": schema.BoolAttribute{ + Description: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + MarkdownDescription: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + Required: false, + Optional: true, + Computed: false, + }, + "vm_agent_external_label_name": schema.StringAttribute{ Description: "VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance name. Defaults to the value of 'prometheus'. External label will _not_ be added when value is set to empty string ('''').", MarkdownDescription: "VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance name. Defaults to the value of 'prometheus'. External label will _not_ be added when value is set to empty string ('''').", @@ -5368,8 +6108,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output deploy definition. VolumeMounts specified will be appended to other VolumeMounts in the vmagent container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output deploy definition. VolumeMounts specified will be appended to other VolumeMounts in the vmagent container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -5381,8 +6121,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -5404,6 +6144,14 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -5427,8 +6175,8 @@ func (r *OperatorVictoriametricsComVmagentV1Beta1Manifest) Schema(_ context.Cont }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output deploy definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output deploy definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alert_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alert_v1beta1_manifest.go index da585b260..22a8f1848 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alert_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alert_v1beta1_manifest.go @@ -44,12 +44,19 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { } `tfsdk:"metadata" json:"metadata"` Spec *struct { - Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` - ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` - ConfigReloaderExtraArgs *map[string]string `tfsdk:"config_reloader_extra_args" json:"configReloaderExtraArgs,omitempty"` - Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` - Datasource *struct { - OAuth2 *map[string]string `tfsdk:"o_auth2" json:"OAuth2,omitempty"` + Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + ConfigReloaderExtraArgs *map[string]string `tfsdk:"config_reloader_extra_args" json:"configReloaderExtraArgs,omitempty"` + ConfigReloaderImageTag *string `tfsdk:"config_reloader_image_tag" json:"configReloaderImageTag,omitempty"` + ConfigReloaderResources *struct { + Claims *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"claims" json:"claims,omitempty"` + Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` + Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` + } `tfsdk:"config_reloader_resources" json:"configReloaderResources,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + Datasource *struct { BasicAuth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -69,34 +76,13 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearerTokenSecret,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Oauth2 *struct { - Client_id *struct { - ConfigMap *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - } `tfsdk:"client_id" json:"client_id,omitempty"` - Client_secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"client_secret" json:"client_secret,omitempty"` - Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` - Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` - Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` - Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` - } `tfsdk:"oauth2" json:"oauth2,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + Oauth2 *map[string]string `tfsdk:"oauth2" json:"oauth2,omitempty"` TlsConfig *map[string]string `tfsdk:"tls_config" json:"tlsConfig,omitempty"` Url *string `tfsdk:"url" json:"url,omitempty"` } `tfsdk:"datasource" json:"datasource,omitempty"` - DnsConfig *struct { + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -110,8 +96,16 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { ExternalLabels *map[string]string `tfsdk:"external_labels" json:"externalLabels,omitempty"` ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Image *struct { + HostAliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Image *struct { PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` Repository *string `tfsdk:"repository" json:"repository,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` @@ -134,7 +128,6 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { MinReadySeconds *int64 `tfsdk:"min_ready_seconds" json:"minReadySeconds,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` Notifier *struct { - OAuth2 *map[string]string `tfsdk:"o_auth2" json:"OAuth2,omitempty"` BasicAuth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -154,30 +147,8 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearerTokenSecret,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Oauth2 *struct { - Client_id *struct { - ConfigMap *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - } `tfsdk:"client_id" json:"client_id,omitempty"` - Client_secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"client_secret" json:"client_secret,omitempty"` - Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` - Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` - Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` - Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` - } `tfsdk:"oauth2" json:"oauth2,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + Oauth2 *map[string]string `tfsdk:"oauth2" json:"oauth2,omitempty"` Selector *struct { LabelSelector *struct { MatchExpressions *[]struct { @@ -201,7 +172,6 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"notifier_config_ref" json:"notifierConfigRef,omitempty"` Notifiers *[]struct { - OAuth2 *map[string]string `tfsdk:"o_auth2" json:"OAuth2,omitempty"` BasicAuth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -221,30 +191,8 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearerTokenSecret,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Oauth2 *struct { - Client_id *struct { - ConfigMap *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - } `tfsdk:"client_id" json:"client_id,omitempty"` - Client_secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"client_secret" json:"client_secret,omitempty"` - Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` - Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` - Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` - Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` - } `tfsdk:"oauth2" json:"oauth2,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + Oauth2 *map[string]string `tfsdk:"oauth2" json:"oauth2,omitempty"` Selector *struct { LabelSelector *struct { MatchExpressions *[]struct { @@ -280,7 +228,6 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { } `tfsdk:"readiness_gates" json:"readinessGates,omitempty"` ReadinessProbe *map[string]string `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` RemoteRead *struct { - OAuth2 *map[string]string `tfsdk:"o_auth2" json:"OAuth2,omitempty"` BasicAuth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -300,36 +247,13 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearerTokenSecret,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Lookback *string `tfsdk:"lookback" json:"lookback,omitempty"` - Oauth2 *struct { - Client_id *struct { - ConfigMap *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - } `tfsdk:"client_id" json:"client_id,omitempty"` - Client_secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"client_secret" json:"client_secret,omitempty"` - Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` - Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` - Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` - Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` - } `tfsdk:"oauth2" json:"oauth2,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + Lookback *string `tfsdk:"lookback" json:"lookback,omitempty"` + Oauth2 *map[string]string `tfsdk:"oauth2" json:"oauth2,omitempty"` TlsConfig *map[string]string `tfsdk:"tls_config" json:"tlsConfig,omitempty"` Url *string `tfsdk:"url" json:"url,omitempty"` } `tfsdk:"remote_read" json:"remoteRead,omitempty"` RemoteWrite *struct { - OAuth2 *map[string]string `tfsdk:"o_auth2" json:"OAuth2,omitempty"` BasicAuth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -349,36 +273,14 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearerTokenSecret,omitempty"` - Concurrency *int64 `tfsdk:"concurrency" json:"concurrency,omitempty"` - FlushInterval *string `tfsdk:"flush_interval" json:"flushInterval,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - MaxBatchSize *int64 `tfsdk:"max_batch_size" json:"maxBatchSize,omitempty"` - MaxQueueSize *int64 `tfsdk:"max_queue_size" json:"maxQueueSize,omitempty"` - Oauth2 *struct { - Client_id *struct { - ConfigMap *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"config_map" json:"configMap,omitempty"` - Secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"secret" json:"secret,omitempty"` - } `tfsdk:"client_id" json:"client_id,omitempty"` - Client_secret *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` - } `tfsdk:"client_secret" json:"client_secret,omitempty"` - Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` - Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` - Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` - Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` - } `tfsdk:"oauth2" json:"oauth2,omitempty"` - TlsConfig *map[string]string `tfsdk:"tls_config" json:"tlsConfig,omitempty"` - Url *string `tfsdk:"url" json:"url,omitempty"` + Concurrency *int64 `tfsdk:"concurrency" json:"concurrency,omitempty"` + FlushInterval *string `tfsdk:"flush_interval" json:"flushInterval,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + MaxBatchSize *int64 `tfsdk:"max_batch_size" json:"maxBatchSize,omitempty"` + MaxQueueSize *int64 `tfsdk:"max_queue_size" json:"maxQueueSize,omitempty"` + Oauth2 *map[string]string `tfsdk:"oauth2" json:"oauth2,omitempty"` + TlsConfig *map[string]string `tfsdk:"tls_config" json:"tlsConfig,omitempty"` + Url *string `tfsdk:"url" json:"url,omitempty"` } `tfsdk:"remote_write" json:"remoteWrite,omitempty"` ReplicaCount *int64 `tfsdk:"replica_count" json:"replicaCount,omitempty"` Resources *struct { @@ -437,14 +339,17 @@ type OperatorVictoriametricsComVmalertV1Beta1ManifestData struct { } `tfsdk:"tolerations" json:"tolerations,omitempty"` TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` UpdateStrategy *string `tfsdk:"update_strategy" json:"updateStrategy,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` + UseVMConfigReloader *bool `tfsdk:"use_vm_config_reloader" json:"useVMConfigReloader,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` @@ -537,8 +442,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMAlert object, which shall be mounted into the VMAlert Pods. The ConfigMaps are mounted into /etc/vm/configs/.", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMAlert object, which shall be mounted into the VMAlert Pods. The ConfigMaps are mounted into /etc/vm/configs/.", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -554,6 +459,60 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "config_reloader_image_tag": schema.StringAttribute{ + Description: "ConfigReloaderImageTag defines image:tag for config-reloader container", + MarkdownDescription: "ConfigReloaderImageTag defines image:tag for config-reloader container", + Required: false, + Optional: true, + Computed: false, + }, + + "config_reloader_resources": schema.SingleNestedAttribute{ + Description: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + Attributes: map[string]schema.Attribute{ + "claims": schema.ListNestedAttribute{ + Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "containers": schema.ListAttribute{ Description: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", MarkdownDescription: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", @@ -567,22 +526,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Description: "Datasource Victoria Metrics or VMSelect url. Required parameter. e.g. http://127.0.0.1:8428", MarkdownDescription: "Datasource Victoria Metrics or VMSelect url. Required parameter. e.g. http://127.0.0.1:8428", Attributes: map[string]schema.Attribute{ - "o_auth2": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -593,8 +543,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -614,16 +564,16 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -634,8 +584,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -680,8 +630,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -709,158 +659,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "oauth2": schema.SingleNestedAttribute{ + "oauth2": schema.MapAttribute{ Description: "OAuth2 defines OAuth2 configuration", MarkdownDescription: "OAuth2 defines OAuth2 configuration", - Attributes: map[string]schema.Attribute{ - "client_id": schema.SingleNestedAttribute{ - Description: "The secret or configmap containing the OAuth2 client id", - MarkdownDescription: "The secret or configmap containing the OAuth2 client id", - Attributes: map[string]schema.Attribute{ - "config_map": schema.SingleNestedAttribute{ - Description: "ConfigMap containing data to use for the targets.", - MarkdownDescription: "ConfigMap containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "Secret containing data to use for the targets.", - MarkdownDescription: "Secret containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "client_secret": schema.SingleNestedAttribute{ - Description: "The secret containing the OAuth2 client secret", - MarkdownDescription: "The secret containing the OAuth2 client secret", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "client_secret_file": schema.StringAttribute{ - Description: "ClientSecretFile defines path for client secret file.", - MarkdownDescription: "ClientSecretFile defines path for client secret file.", - Required: false, - Optional: true, - Computed: false, - }, - - "endpoint_params": schema.MapAttribute{ - Description: "Parameters to append to the token URL", - MarkdownDescription: "Parameters to append to the token URL", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "scopes": schema.ListAttribute{ - Description: "OAuth2 scopes used for the token request", - MarkdownDescription: "OAuth2 scopes used for the token request", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "token_url": schema.StringAttribute{ - Description: "The URL to fetch the token from", - MarkdownDescription: "The URL to fetch the token from", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, "tls_config": schema.MapAttribute{ @@ -885,6 +690,14 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "dns_config": schema.SingleNestedAttribute{ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", @@ -976,8 +789,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "extra_args": schema.MapAttribute{ - Description: "ExtraArgs that will be passed to VMAlert pod for example -remoteWrite.tmpDataPath=/tmp", - MarkdownDescription: "ExtraArgs that will be passed to VMAlert pod for example -remoteWrite.tmpDataPath=/tmp", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, @@ -985,14 +798,42 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMAlert pod", - MarkdownDescription: "ExtraEnvs that will be added to VMAlert pod", + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + MarkdownDescription: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "host_network": schema.BoolAttribute{ Description: "HostNetwork controls whether the pod may use the node network namespace", MarkdownDescription: "HostNetwork controls whether the pod may use the node network namespace", @@ -1001,9 +842,37 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMAlert if no specified operator uses default config version", - MarkdownDescription: "Image - docker image settings for VMAlert if no specified operator uses default config version", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -1040,8 +909,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1054,8 +923,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMAlert configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMAlert configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -1063,12 +932,12 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "license": schema.SingleNestedAttribute{ - Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", - MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", + Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", + MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", - MarkdownDescription: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", + Description: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", + MarkdownDescription: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", Required: false, Optional: true, Computed: false, @@ -1087,8 +956,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1144,8 +1013,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "min_ready_seconds": schema.Int64Attribute{ - Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", - MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", Required: false, Optional: true, Computed: false, @@ -1164,22 +1033,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Description: "Notifier prometheus alertmanager endpoint spec. Required at least one of notifier or notifiers when there are alerting rules. e.g. http://127.0.0.1:9093 If specified both notifier and notifiers, notifier will be added as last element to notifiers. only one of notifier options could be chosen: notifierConfigRef or notifiers + notifier", MarkdownDescription: "Notifier prometheus alertmanager endpoint spec. Required at least one of notifier or notifiers when there are alerting rules. e.g. http://127.0.0.1:9093 If specified both notifier and notifiers, notifier will be added as last element to notifiers. only one of notifier options could be chosen: notifierConfigRef or notifiers + notifier", Attributes: map[string]schema.Attribute{ - "o_auth2": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1190,8 +1050,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1211,16 +1071,16 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1231,8 +1091,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1277,8 +1137,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1306,158 +1166,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "oauth2": schema.SingleNestedAttribute{ + "oauth2": schema.MapAttribute{ Description: "OAuth2 defines OAuth2 configuration", MarkdownDescription: "OAuth2 defines OAuth2 configuration", - Attributes: map[string]schema.Attribute{ - "client_id": schema.SingleNestedAttribute{ - Description: "The secret or configmap containing the OAuth2 client id", - MarkdownDescription: "The secret or configmap containing the OAuth2 client id", - Attributes: map[string]schema.Attribute{ - "config_map": schema.SingleNestedAttribute{ - Description: "ConfigMap containing data to use for the targets.", - MarkdownDescription: "ConfigMap containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "Secret containing data to use for the targets.", - MarkdownDescription: "Secret containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "client_secret": schema.SingleNestedAttribute{ - Description: "The secret containing the OAuth2 client secret", - MarkdownDescription: "The secret containing the OAuth2 client secret", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "client_secret_file": schema.StringAttribute{ - Description: "ClientSecretFile defines path for client secret file.", - MarkdownDescription: "ClientSecretFile defines path for client secret file.", - Required: false, - Optional: true, - Computed: false, - }, - - "endpoint_params": schema.MapAttribute{ - Description: "Parameters to append to the token URL", - MarkdownDescription: "Parameters to append to the token URL", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "scopes": schema.ListAttribute{ - Description: "OAuth2 scopes used for the token request", - MarkdownDescription: "OAuth2 scopes used for the token request", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "token_url": schema.StringAttribute{ - Description: "The URL to fetch the token from", - MarkdownDescription: "The URL to fetch the token from", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, "selector": schema.SingleNestedAttribute{ @@ -1584,8 +1299,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1609,22 +1324,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont MarkdownDescription: "Notifiers prometheus alertmanager endpoints. Required at least one of notifier or notifiers when there are alerting rules. e.g. http://127.0.0.1:9093 If specified both notifier and notifiers, notifier will be added as last element to notifiers. only one of notifier options could be chosen: notifierConfigRef or notifiers + notifier", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ - "o_auth2": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1635,8 +1341,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1654,185 +1360,18 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Optional: true, Computed: false, }, - - "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", - Required: false, - Optional: true, - Computed: false, - }, - - "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "bearer_token_file": schema.StringAttribute{ - Description: "Path to bearer token file", - MarkdownDescription: "Path to bearer token file", - Required: false, - Optional: true, - Computed: false, - }, - - "bearer_token_secret": schema.SingleNestedAttribute{ - Description: "Optional bearer auth token to use for -remoteWrite.url", - MarkdownDescription: "Optional bearer auth token to use for -remoteWrite.url", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "headers": schema.ListAttribute{ - Description: "Headers allow configuring custom http headers Must be in form of semicolon separated header with value e.g. headerName:headerValue vmalert supports it since 1.79.0 version", - MarkdownDescription: "Headers allow configuring custom http headers Must be in form of semicolon separated header with value e.g. headerName:headerValue vmalert supports it since 1.79.0 version", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "oauth2": schema.SingleNestedAttribute{ - Description: "OAuth2 defines OAuth2 configuration", - MarkdownDescription: "OAuth2 defines OAuth2 configuration", - Attributes: map[string]schema.Attribute{ - "client_id": schema.SingleNestedAttribute{ - Description: "The secret or configmap containing the OAuth2 client id", - MarkdownDescription: "The secret or configmap containing the OAuth2 client id", - Attributes: map[string]schema.Attribute{ - "config_map": schema.SingleNestedAttribute{ - Description: "ConfigMap containing data to use for the targets.", - MarkdownDescription: "ConfigMap containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "Secret containing data to use for the targets.", - MarkdownDescription: "Secret containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, }, - "client_secret": schema.SingleNestedAttribute{ - Description: "The secret containing the OAuth2 client secret", - MarkdownDescription: "The secret containing the OAuth2 client secret", + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1843,8 +1382,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1862,49 +1401,71 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Optional: true, Computed: false, }, + }, + Required: false, + Optional: true, + Computed: false, + }, - "client_secret_file": schema.StringAttribute{ - Description: "ClientSecretFile defines path for client secret file.", - MarkdownDescription: "ClientSecretFile defines path for client secret file.", - Required: false, - Optional: true, + "bearer_token_file": schema.StringAttribute{ + Description: "Path to bearer token file", + MarkdownDescription: "Path to bearer token file", + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_secret": schema.SingleNestedAttribute{ + Description: "Optional bearer auth token to use for -remoteWrite.url", + MarkdownDescription: "Optional bearer auth token to use for -remoteWrite.url", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, Computed: false, }, - "endpoint_params": schema.MapAttribute{ - Description: "Parameters to append to the token URL", - MarkdownDescription: "Parameters to append to the token URL", - ElementType: types.StringType, + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, }, - "scopes": schema.ListAttribute{ - Description: "OAuth2 scopes used for the token request", - MarkdownDescription: "OAuth2 scopes used for the token request", - ElementType: types.StringType, + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", Required: false, Optional: true, Computed: false, }, - - "token_url": schema.StringAttribute{ - Description: "The URL to fetch the token from", - MarkdownDescription: "The URL to fetch the token from", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - }, - }, }, Required: false, Optional: true, Computed: false, }, + "headers": schema.ListAttribute{ + Description: "Headers allow configuring custom http headers Must be in form of semicolon separated header with value e.g. headerName:headerValue vmalert supports it since 1.79.0 version", + MarkdownDescription: "Headers allow configuring custom http headers Must be in form of semicolon separated header with value e.g. headerName:headerValue vmalert supports it since 1.79.0 version", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "oauth2": schema.MapAttribute{ + Description: "OAuth2 defines OAuth2 configuration", + MarkdownDescription: "OAuth2 defines OAuth2 configuration", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "selector": schema.SingleNestedAttribute{ Description: "Selector allows service discovery for alertmanager in this case all matched vmalertmanager replicas will be added into vmalert notifier.url as statefulset pod.fqdn", MarkdownDescription: "Selector allows service discovery for alertmanager in this case all matched vmalertmanager replicas will be added into vmalert notifier.url as statefulset pod.fqdn", @@ -2095,16 +1656,16 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "port": schema.StringAttribute{ - Description: "Port for listen", - MarkdownDescription: "Port for listen", + Description: "Port listen address", + MarkdownDescription: "Port listen address", Required: false, Optional: true, Computed: false, }, "priority_class_name": schema.StringAttribute{ - Description: "Priority class assigned to the Pods", - MarkdownDescription: "Priority class assigned to the Pods", + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", Required: false, Optional: true, Computed: false, @@ -2142,22 +1703,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Description: "RemoteRead Optional URL to read vmalert state (persisted via RemoteWrite) This configuration only makes sense if alerts state has been successfully persisted (via RemoteWrite) before. see -remoteRead.url docs in vmalerts for details. E.g. http://127.0.0.1:8428", MarkdownDescription: "RemoteRead Optional URL to read vmalert state (persisted via RemoteWrite) This configuration only makes sense if alerts state has been successfully persisted (via RemoteWrite) before. see -remoteRead.url docs in vmalerts for details. E.g. http://127.0.0.1:8428", Attributes: map[string]schema.Attribute{ - "o_auth2": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2168,8 +1720,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2189,16 +1741,16 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2209,8 +1761,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2255,8 +1807,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2292,158 +1844,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "oauth2": schema.SingleNestedAttribute{ + "oauth2": schema.MapAttribute{ Description: "OAuth2 defines OAuth2 configuration", MarkdownDescription: "OAuth2 defines OAuth2 configuration", - Attributes: map[string]schema.Attribute{ - "client_id": schema.SingleNestedAttribute{ - Description: "The secret or configmap containing the OAuth2 client id", - MarkdownDescription: "The secret or configmap containing the OAuth2 client id", - Attributes: map[string]schema.Attribute{ - "config_map": schema.SingleNestedAttribute{ - Description: "ConfigMap containing data to use for the targets.", - MarkdownDescription: "ConfigMap containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "Secret containing data to use for the targets.", - MarkdownDescription: "Secret containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "client_secret": schema.SingleNestedAttribute{ - Description: "The secret containing the OAuth2 client secret", - MarkdownDescription: "The secret containing the OAuth2 client secret", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "client_secret_file": schema.StringAttribute{ - Description: "ClientSecretFile defines path for client secret file.", - MarkdownDescription: "ClientSecretFile defines path for client secret file.", - Required: false, - Optional: true, - Computed: false, - }, - - "endpoint_params": schema.MapAttribute{ - Description: "Parameters to append to the token URL", - MarkdownDescription: "Parameters to append to the token URL", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "scopes": schema.ListAttribute{ - Description: "OAuth2 scopes used for the token request", - MarkdownDescription: "OAuth2 scopes used for the token request", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "token_url": schema.StringAttribute{ - Description: "The URL to fetch the token from", - MarkdownDescription: "The URL to fetch the token from", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, "tls_config": schema.MapAttribute{ @@ -2472,22 +1879,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Description: "RemoteWrite Optional URL to remote-write compatible storage to persist vmalert state and rule results to. Rule results will be persisted according to each rule. Alerts state will be persisted in the form of time series named ALERTS and ALERTS_FOR_STATE see -remoteWrite.url docs in vmalerts for details. E.g. http://127.0.0.1:8428", MarkdownDescription: "RemoteWrite Optional URL to remote-write compatible storage to persist vmalert state and rule results to. Rule results will be persisted according to each rule. Alerts state will be persisted in the form of time series named ALERTS and ALERTS_FOR_STATE see -remoteWrite.url docs in vmalerts for details. E.g. http://127.0.0.1:8428", Attributes: map[string]schema.Attribute{ - "o_auth2": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2498,8 +1896,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2519,16 +1917,16 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2539,8 +1937,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2585,8 +1983,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2649,158 +2047,13 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "oauth2": schema.SingleNestedAttribute{ + "oauth2": schema.MapAttribute{ Description: "OAuth2 defines OAuth2 configuration", MarkdownDescription: "OAuth2 defines OAuth2 configuration", - Attributes: map[string]schema.Attribute{ - "client_id": schema.SingleNestedAttribute{ - Description: "The secret or configmap containing the OAuth2 client id", - MarkdownDescription: "The secret or configmap containing the OAuth2 client id", - Attributes: map[string]schema.Attribute{ - "config_map": schema.SingleNestedAttribute{ - Description: "ConfigMap containing data to use for the targets.", - MarkdownDescription: "ConfigMap containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key to select.", - MarkdownDescription: "The key to select.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the ConfigMap or its key must be defined", - MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "secret": schema.SingleNestedAttribute{ - Description: "Secret containing data to use for the targets.", - MarkdownDescription: "Secret containing data to use for the targets.", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - - "client_secret": schema.SingleNestedAttribute{ - Description: "The secret containing the OAuth2 client secret", - MarkdownDescription: "The secret containing the OAuth2 client secret", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, - - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "client_secret_file": schema.StringAttribute{ - Description: "ClientSecretFile defines path for client secret file.", - MarkdownDescription: "ClientSecretFile defines path for client secret file.", - Required: false, - Optional: true, - Computed: false, - }, - - "endpoint_params": schema.MapAttribute{ - Description: "Parameters to append to the token URL", - MarkdownDescription: "Parameters to append to the token URL", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "scopes": schema.ListAttribute{ - Description: "OAuth2 scopes used for the token request", - MarkdownDescription: "OAuth2 scopes used for the token request", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "token_url": schema.StringAttribute{ - Description: "The URL to fetch the token from", - MarkdownDescription: "The URL to fetch the token from", - Required: true, - Optional: false, - Computed: false, - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - }, - }, - }, - Required: false, - Optional: true, - Computed: false, + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, }, "tls_config": schema.MapAttribute{ @@ -2826,16 +2079,16 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount is the expected size of the VMAlert cluster. The controller will eventually make the size of the running cluster equal to the expected size.", - MarkdownDescription: "ReplicaCount is the expected size of the VMAlert cluster. The controller will eventually make the size of the running cluster equal to the expected size.", + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", Required: false, Optional: true, Computed: false, }, "resources": schema.SingleNestedAttribute{ - Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", Attributes: map[string]schema.Attribute{ "claims": schema.ListNestedAttribute{ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", @@ -2880,8 +2133,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -3046,8 +2299,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the VMAlert object, which shall be mounted into the VMAlert Pods. The Secrets are mounted into /etc/vm/secrets/.", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the VMAlert object, which shall be mounted into the VMAlert Pods. The Secrets are mounted into /etc/vm/secrets/.", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -3072,8 +2325,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to use to run the VMAlert Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the VMAlert Pods.", + Description: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", Required: false, Optional: true, Computed: false, @@ -3237,6 +2490,14 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + "use_strict_security": schema.BoolAttribute{ Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", @@ -3245,9 +2506,17 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "use_vm_config_reloader": schema.BoolAttribute{ + Description: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + MarkdownDescription: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMAlert container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMAlert container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -3259,8 +2528,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -3282,6 +2551,14 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -3305,8 +2582,8 @@ func (r *OperatorVictoriametricsComVmalertV1Beta1Manifest) Schema(_ context.Cont }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest.go index 2194eca03..cf7a6182e 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest.go @@ -50,23 +50,18 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Source_matchers *[]string `tfsdk:"source_matchers" json:"source_matchers,omitempty"` Target_matchers *[]string `tfsdk:"target_matchers" json:"target_matchers,omitempty"` } `tfsdk:"inhibit_rules" json:"inhibit_rules,omitempty"` - Mute_time_intervals *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - Time_intervals *[]struct { - Days_of_month *[]string `tfsdk:"days_of_month" json:"days_of_month,omitempty"` - Location *string `tfsdk:"location" json:"location,omitempty"` - Months *[]string `tfsdk:"months" json:"months,omitempty"` - Times *[]struct { - End_time *string `tfsdk:"end_time" json:"end_time,omitempty"` - Start_time *string `tfsdk:"start_time" json:"start_time,omitempty"` - } `tfsdk:"times" json:"times,omitempty"` - Weekdays *[]string `tfsdk:"weekdays" json:"weekdays,omitempty"` - Years *[]string `tfsdk:"years" json:"years,omitempty"` - } `tfsdk:"time_intervals" json:"time_intervals,omitempty"` - } `tfsdk:"mute_time_intervals" json:"mute_time_intervals,omitempty"` Receivers *[]struct { Discord_configs *[]struct { Http_config *struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -86,6 +81,29 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearer_token_secret,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` Tls_config *struct { Ca *struct { @@ -195,6 +213,15 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { } `tfsdk:"email_configs" json:"email_configs,omitempty"` Msteams_configs *[]struct { Http_config *struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -214,6 +241,29 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearer_token_secret,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` Tls_config *struct { Ca *struct { @@ -393,6 +443,15 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Api_url *string `tfsdk:"api_url" json:"api_url,omitempty"` Attributes *map[string]string `tfsdk:"attributes" json:"attributes,omitempty"` Http_config *struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -412,6 +471,29 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearer_token_secret,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` Tls_config *struct { Ca *struct { @@ -497,6 +579,15 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Custom_fields *map[string]string `tfsdk:"custom_fields" json:"custom_fields,omitempty"` Entity_display_name *string `tfsdk:"entity_display_name" json:"entity_display_name,omitempty"` Http_config *struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -516,6 +607,29 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearer_token_secret,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` Tls_config *struct { Ca *struct { @@ -563,6 +677,15 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Webex_configs *[]struct { Api_url *string `tfsdk:"api_url" json:"api_url,omitempty"` Http_config *struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -582,6 +705,29 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearer_token_secret,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` Tls_config *struct { Ca *struct { @@ -645,6 +791,15 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Api_url *string `tfsdk:"api_url" json:"api_url,omitempty"` Corp_id *string `tfsdk:"corp_id" json:"corp_id,omitempty"` Http_config *struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -664,6 +819,29 @@ type OperatorVictoriametricsComVmalertmanagerConfigV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearer_token_secret,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` Tls_config *struct { Ca *struct { @@ -813,8 +991,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "spec": schema.SingleNestedAttribute{ - Description: "VMAlertmanagerConfigSpec defines configuration for VMAlertmanagerConfig", - MarkdownDescription: "VMAlertmanagerConfigSpec defines configuration for VMAlertmanagerConfig", + Description: "VMAlertmanagerConfigSpec defines configuration for VMAlertmanagerConfig it must reference only locally defined objects", + MarkdownDescription: "VMAlertmanagerConfigSpec defines configuration for VMAlertmanagerConfig it must reference only locally defined objects", Attributes: map[string]schema.Attribute{ "inhibit_rules": schema.ListNestedAttribute{ Description: "InhibitRules will only apply for alerts matching the resource's namespace.", @@ -854,110 +1032,9 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, - "mute_time_intervals": schema.ListNestedAttribute{ - Description: "MuteTimeInterval - global mute time See https://prometheus.io/docs/alerting/latest/configuration/#mute_time_interval", - MarkdownDescription: "MuteTimeInterval - global mute time See https://prometheus.io/docs/alerting/latest/configuration/#mute_time_interval", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name of interval", - MarkdownDescription: "Name of interval", - Required: false, - Optional: true, - Computed: false, - }, - - "time_intervals": schema.ListNestedAttribute{ - Description: "TimeIntervals interval configuration", - MarkdownDescription: "TimeIntervals interval configuration", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "days_of_month": schema.ListAttribute{ - Description: "DayOfMonth defines list of numerical days in the month. Days begin at 1. Negative values are also accepted. for example, ['1:5', '-3:-1']", - MarkdownDescription: "DayOfMonth defines list of numerical days in the month. Days begin at 1. Negative values are also accepted. for example, ['1:5', '-3:-1']", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "location": schema.StringAttribute{ - Description: "Location in golang time location form, e.g. UTC", - MarkdownDescription: "Location in golang time location form, e.g. UTC", - Required: false, - Optional: true, - Computed: false, - }, - - "months": schema.ListAttribute{ - Description: "Months defines list of calendar months identified by a case-insensitive name (e.g. ‘January’) or numeric 1. For example, ['1:3', 'may:august', 'december']", - MarkdownDescription: "Months defines list of calendar months identified by a case-insensitive name (e.g. ‘January’) or numeric 1. For example, ['1:3', 'may:august', 'december']", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "times": schema.ListNestedAttribute{ - Description: "Times defines time range for mute", - MarkdownDescription: "Times defines time range for mute", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "end_time": schema.StringAttribute{ - Description: "EndTime for example HH:MM", - MarkdownDescription: "EndTime for example HH:MM", - Required: true, - Optional: false, - Computed: false, - }, - - "start_time": schema.StringAttribute{ - Description: "StartTime for example HH:MM", - MarkdownDescription: "StartTime for example HH:MM", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "weekdays": schema.ListAttribute{ - Description: "Weekdays defines list of days of the week, where the week begins on Sunday and ends on Saturday.", - MarkdownDescription: "Weekdays defines list of days of the week, where the week begins on Sunday and ends on Saturday.", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - - "years": schema.ListAttribute{ - Description: "Years defines numerical list of years, ranges are accepted. For example, ['2020:2022', '2030']", - MarkdownDescription: "Years defines numerical list of years, ranges are accepted. For example, ['2020:2022', '2030']", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - }, - }, - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "receivers": schema.ListNestedAttribute{ - Description: "Receivers defines alert receivers. without defined Route, receivers will be skipped.", - MarkdownDescription: "Receivers defines alert receivers. without defined Route, receivers will be skipped.", + Description: "Receivers defines alert receivers", + MarkdownDescription: "Receivers defines alert receivers", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "discord_configs": schema.ListNestedAttribute{ @@ -969,13 +1046,71 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Description: "HTTP client configuration.", MarkdownDescription: "HTTP client configuration.", Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + MarkdownDescription: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "basic_auth": schema.SingleNestedAttribute{ - Description: "TODO oAuth2 support BasicAuth for the client.", - MarkdownDescription: "TODO oAuth2 support BasicAuth for the client.", + Description: "BasicAuth for the client.", + MarkdownDescription: "BasicAuth for the client.", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -986,8 +1121,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1007,16 +1142,16 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1027,8 +1162,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1073,8 +1208,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1093,12 +1228,166 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, - "proxy_url": schema.StringAttribute{ - Description: "Optional proxy URL.", - MarkdownDescription: "Optional proxy URL.", - Required: false, - Optional: true, - Computed: false, + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 client credentials used to fetch a token for the targets.", + MarkdownDescription: "OAuth2 client credentials used to fetch a token for the targets.", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_url": schema.StringAttribute{ + Description: "Optional proxy URL.", + MarkdownDescription: "Optional proxy URL.", + Required: false, + Optional: true, + Computed: false, }, "tls_config": schema.SingleNestedAttribute{ @@ -1122,8 +1411,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1155,8 +1444,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1205,8 +1494,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1238,8 +1527,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1300,8 +1589,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1383,8 +1672,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1435,8 +1724,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1468,8 +1757,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1497,8 +1786,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "from": schema.StringAttribute{ - Description: "The sender address.", - MarkdownDescription: "The sender address.", + Description: "The sender address. fallback to global setting if empty", + MarkdownDescription: "The sender address. fallback to global setting if empty", Required: false, Optional: true, Computed: false, @@ -1546,8 +1835,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "smarthost": schema.StringAttribute{ - Description: "The SMTP host through which emails are sent.", - MarkdownDescription: "The SMTP host through which emails are sent.", + Description: "The SMTP host through which emails are sent. fallback to global setting if empty", + MarkdownDescription: "The SMTP host through which emails are sent. fallback to global setting if empty", Required: false, Optional: true, Computed: false, @@ -1582,8 +1871,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1615,8 +1904,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1665,8 +1954,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1698,8 +1987,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1760,8 +2049,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1816,13 +2105,71 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Description: "HTTP client configuration.", MarkdownDescription: "HTTP client configuration.", Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + MarkdownDescription: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "basic_auth": schema.SingleNestedAttribute{ - Description: "TODO oAuth2 support BasicAuth for the client.", - MarkdownDescription: "TODO oAuth2 support BasicAuth for the client.", + Description: "BasicAuth for the client.", + MarkdownDescription: "BasicAuth for the client.", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1833,8 +2180,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1854,16 +2201,16 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1874,8 +2221,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1920,8 +2267,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1940,21 +2287,13 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, - "proxy_url": schema.StringAttribute{ - Description: "Optional proxy URL.", - MarkdownDescription: "Optional proxy URL.", - Required: false, - Optional: true, - Computed: false, - }, - - "tls_config": schema.SingleNestedAttribute{ - Description: "TLS configuration for the client.", - MarkdownDescription: "TLS configuration for the client.", + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 client credentials used to fetch a token for the targets.", + MarkdownDescription: "OAuth2 client credentials used to fetch a token for the targets.", Attributes: map[string]schema.Attribute{ - "ca": schema.SingleNestedAttribute{ - Description: "Stuct containing the CA cert to use for the targets.", - MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", Attributes: map[string]schema.Attribute{ "config_map": schema.SingleNestedAttribute{ Description: "ConfigMap containing data to use for the targets.", @@ -1969,8 +2308,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2002,8 +2341,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2022,22 +2361,101 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, Required: false, Optional: true, Computed: false, }, - "ca_file": schema.StringAttribute{ - Description: "Path to the CA cert in the container to use for the targets.", - MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", Required: false, Optional: true, Computed: false, }, - "cert": schema.SingleNestedAttribute{ - Description: "Struct containing the client cert file for the targets.", - MarkdownDescription: "Struct containing the client cert file for the targets.", + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_url": schema.StringAttribute{ + Description: "Optional proxy URL.", + MarkdownDescription: "Optional proxy URL.", + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLS configuration for the client.", + MarkdownDescription: "TLS configuration for the client.", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", Attributes: map[string]schema.Attribute{ "config_map": schema.SingleNestedAttribute{ Description: "ConfigMap containing data to use for the targets.", @@ -2052,8 +2470,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2085,8 +2503,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2110,9 +2528,92 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, - "cert_file": schema.StringAttribute{ - Description: "Path to the client cert file in the container for the targets.", - MarkdownDescription: "Path to the client cert file in the container for the targets.", + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", Required: false, Optional: true, Computed: false, @@ -2147,8 +2648,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2230,8 +2731,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2289,8 +2790,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "api_key": schema.SingleNestedAttribute{ - Description: "The secret's key that contains the OpsGenie API key. It must be at them same namespace as CRD", - MarkdownDescription: "The secret's key that contains the OpsGenie API key. It must be at them same namespace as CRD", + Description: "The secret's key that contains the OpsGenie API key. It must be at them same namespace as CRD fallback to global setting if empty", + MarkdownDescription: "The secret's key that contains the OpsGenie API key. It must be at them same namespace as CRD fallback to global setting if empty", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2301,8 +2802,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2609,8 +3110,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2650,8 +3151,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2783,8 +3284,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2832,8 +3333,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2973,8 +3474,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "api_url": schema.SingleNestedAttribute{ - Description: "The secret's key that contains the Slack webhook URL. It must be at them same namespace as CRD", - MarkdownDescription: "The secret's key that contains the Slack webhook URL. It must be at them same namespace as CRD", + Description: "The secret's key that contains the Slack webhook URL. It must be at them same namespace as CRD fallback to global setting if empty", + MarkdownDescription: "The secret's key that contains the Slack webhook URL. It must be at them same namespace as CRD fallback to global setting if empty", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -2985,8 +3486,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3232,13 +3733,71 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Description: "HTTP client configuration.", MarkdownDescription: "HTTP client configuration.", Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + MarkdownDescription: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "basic_auth": schema.SingleNestedAttribute{ - Description: "TODO oAuth2 support BasicAuth for the client.", - MarkdownDescription: "TODO oAuth2 support BasicAuth for the client.", + Description: "BasicAuth for the client.", + MarkdownDescription: "BasicAuth for the client.", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -3249,8 +3808,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3270,16 +3829,16 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -3290,8 +3849,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3336,8 +3895,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3356,6 +3915,160 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 client credentials used to fetch a token for the targets.", + MarkdownDescription: "OAuth2 client credentials used to fetch a token for the targets.", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "proxy_url": schema.StringAttribute{ Description: "Optional proxy URL.", MarkdownDescription: "Optional proxy URL.", @@ -3385,8 +4098,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3418,8 +4131,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3468,8 +4181,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3501,8 +4214,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3563,8 +4276,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3650,8 +4363,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3707,8 +4420,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3788,8 +4501,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3869,8 +4582,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "api_key": schema.SingleNestedAttribute{ - Description: "The secret's key that contains the API key to use when talking to the VictorOps API. It must be at them same namespace as CRD", - MarkdownDescription: "The secret's key that contains the API key to use when talking to the VictorOps API. It must be at them same namespace as CRD", + Description: "The secret's key that contains the API key to use when talking to the VictorOps API. It must be at them same namespace as CRD fallback to global setting if empty", + MarkdownDescription: "The secret's key that contains the API key to use when talking to the VictorOps API. It must be at them same namespace as CRD fallback to global setting if empty", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -3881,8 +4594,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3930,13 +4643,13 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Description: "The HTTP client's configuration.", MarkdownDescription: "The HTTP client's configuration.", Attributes: map[string]schema.Attribute{ - "basic_auth": schema.SingleNestedAttribute{ - Description: "TODO oAuth2 support BasicAuth for the client.", - MarkdownDescription: "TODO oAuth2 support BasicAuth for the client.", + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + MarkdownDescription: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", Attributes: map[string]schema.Attribute{ - "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -3947,8 +4660,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -3967,29 +4680,87 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, - "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", Required: false, Optional: true, Computed: false, }, - "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth for the client.", + MarkdownDescription: "BasicAuth for the client.", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, Optional: false, Computed: false, }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4034,8 +4805,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4054,6 +4825,160 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 client credentials used to fetch a token for the targets.", + MarkdownDescription: "OAuth2 client credentials used to fetch a token for the targets.", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "proxy_url": schema.StringAttribute{ Description: "Optional proxy URL.", MarkdownDescription: "Optional proxy URL.", @@ -4083,8 +5008,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4116,8 +5041,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4166,8 +5091,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4199,8 +5124,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4261,8 +5186,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4318,8 +5243,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ "routing_key": schema.StringAttribute{ Description: "A key used to map the alert to a team.", MarkdownDescription: "A key used to map the alert to a team.", - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, @@ -4362,13 +5287,71 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Description: "HTTP client configuration. You must use this configuration to supply the bot token as part of the HTTP 'Authorization' header.", MarkdownDescription: "HTTP client configuration. You must use this configuration to supply the bot token as part of the HTTP 'Authorization' header.", Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + MarkdownDescription: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "basic_auth": schema.SingleNestedAttribute{ - Description: "TODO oAuth2 support BasicAuth for the client.", - MarkdownDescription: "TODO oAuth2 support BasicAuth for the client.", + Description: "BasicAuth for the client.", + MarkdownDescription: "BasicAuth for the client.", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -4378,38 +5361,196 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - Required: false, - Optional: true, - Computed: false, - }, + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_file": schema.StringAttribute{ + Description: "BearerTokenFile defines filename for bearer token, it must be mounted to pod.", + MarkdownDescription: "BearerTokenFile defines filename for bearer token, it must be mounted to pod.", + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_secret": schema.SingleNestedAttribute{ + Description: "The secret's key that contains the bearer token It must be at them same namespace as CRD", + MarkdownDescription: "The secret's key that contains the bearer token It must be at them same namespace as CRD", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 client credentials used to fetch a token for the targets.", + MarkdownDescription: "OAuth2 client credentials used to fetch a token for the targets.", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", - Required: false, - Optional: true, - Computed: false, + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, - "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", - Required: false, - Optional: true, - Computed: false, - }, - - "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -4420,8 +5561,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4439,47 +5580,43 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Optional: true, Computed: false, }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "bearer_token_file": schema.StringAttribute{ - Description: "BearerTokenFile defines filename for bearer token, it must be mounted to pod.", - MarkdownDescription: "BearerTokenFile defines filename for bearer token, it must be mounted to pod.", - Required: false, - Optional: true, - Computed: false, - }, - "bearer_token_secret": schema.SingleNestedAttribute{ - Description: "The secret's key that contains the bearer token It must be at them same namespace as CRD", - MarkdownDescription: "The secret's key that contains the bearer token It must be at them same namespace as CRD", - Attributes: map[string]schema.Attribute{ - "key": schema.StringAttribute{ - Description: "The key of the secret to select from. Must be a valid secret key.", - MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", - Required: true, - Optional: false, + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, Computed: false, }, - "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "optional": schema.BoolAttribute{ - Description: "Specify whether the Secret or its key must be defined", - MarkdownDescription: "Specify whether the Secret or its key must be defined", + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, }, Required: false, Optional: true, @@ -4515,8 +5652,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4548,8 +5685,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4598,8 +5735,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4631,8 +5768,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4693,8 +5830,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4815,8 +5952,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4855,8 +5992,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "api_secret": schema.SingleNestedAttribute{ - Description: "The secret's key that contains the WeChat API key. The secret needs to be in the same namespace as the AlertmanagerConfig object and accessible by the Prometheus Operator.", - MarkdownDescription: "The secret's key that contains the WeChat API key. The secret needs to be in the same namespace as the AlertmanagerConfig object and accessible by the Prometheus Operator.", + Description: "The secret's key that contains the WeChat API key. The secret needs to be in the same namespace as the AlertmanagerConfig fallback to global alertmanager setting if empty", + MarkdownDescription: "The secret's key that contains the WeChat API key. The secret needs to be in the same namespace as the AlertmanagerConfig fallback to global alertmanager setting if empty", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -4867,8 +6004,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4888,16 +6025,16 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "api_url": schema.StringAttribute{ - Description: "The WeChat API URL.", - MarkdownDescription: "The WeChat API URL.", + Description: "The WeChat API URL. fallback to global alertmanager setting if empty", + MarkdownDescription: "The WeChat API URL. fallback to global alertmanager setting if empty", Required: false, Optional: true, Computed: false, }, "corp_id": schema.StringAttribute{ - Description: "The corp id for authentication.", - MarkdownDescription: "The corp id for authentication.", + Description: "The corp id for authentication. fallback to global alertmanager setting if empty", + MarkdownDescription: "The corp id for authentication. fallback to global alertmanager setting if empty", Required: false, Optional: true, Computed: false, @@ -4907,13 +6044,71 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Description: "HTTP client configuration.", MarkdownDescription: "HTTP client configuration.", Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + MarkdownDescription: "Authorization header configuration for the client. This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "basic_auth": schema.SingleNestedAttribute{ - Description: "TODO oAuth2 support BasicAuth for the client.", - MarkdownDescription: "TODO oAuth2 support BasicAuth for the client.", + Description: "BasicAuth for the client.", + MarkdownDescription: "BasicAuth for the client.", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -4924,8 +6119,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4945,16 +6140,16 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -4965,8 +6160,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -5011,8 +6206,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -5031,6 +6226,160 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 client credentials used to fetch a token for the targets.", + MarkdownDescription: "OAuth2 client credentials used to fetch a token for the targets.", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "proxy_url": schema.StringAttribute{ Description: "Optional proxy URL.", MarkdownDescription: "Optional proxy URL.", @@ -5060,8 +6409,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -5093,8 +6442,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -5143,8 +6492,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -5176,8 +6525,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -5238,8 +6587,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -5331,8 +6680,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, @@ -5398,8 +6747,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ }, "mute_time_intervals": schema.ListAttribute{ - Description: "MuteTimeIntervals for alerts", - MarkdownDescription: "MuteTimeIntervals for alerts", + Description: "MuteTimeIntervals is a list of interval names that will mute matched alert", + MarkdownDescription: "MuteTimeIntervals is a list of interval names that will mute matched alert", ElementType: types.StringType, Required: false, Optional: true, @@ -5434,14 +6783,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerConfigV1Beta1Manifest) Schema(_ Computed: false, }, }, - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, "time_intervals": schema.ListNestedAttribute{ - Description: "ParsingError contents error with context if operator was failed to parse json object from kubernetes api server TimeIntervals modern config option, use it instead of mute_time_intervals", - MarkdownDescription: "ParsingError contents error with context if operator was failed to parse json object from kubernetes api server TimeIntervals modern config option, use it instead of mute_time_intervals", + Description: "TimeIntervals defines named interval for active/mute notifications interval See https://prometheus.io/docs/alerting/latest/configuration/#time_interval", + MarkdownDescription: "TimeIntervals defines named interval for active/mute notifications interval See https://prometheus.io/docs/alerting/latest/configuration/#time_interval", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest.go index b0e02ca1b..08c39055c 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest.go @@ -7,7 +7,6 @@ package operator_victoriametrics_com_v1beta1 import ( "context" - "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" @@ -65,9 +64,6 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -79,15 +75,17 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` Status *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` - Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` - Conditions *[]struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + AllocatedResourceStatuses *map[string]string `tfsdk:"allocated_resource_statuses" json:"allocatedResourceStatuses,omitempty"` + AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` + Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` + Conditions *[]struct { LastProbeTime *string `tfsdk:"last_probe_time" json:"lastProbeTime,omitempty"` LastTransitionTime *string `tfsdk:"last_transition_time" json:"lastTransitionTime,omitempty"` Message *string `tfsdk:"message" json:"message,omitempty"` @@ -95,11 +93,16 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { Status *string `tfsdk:"status" json:"status,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"conditions" json:"conditions,omitempty"` - Phase *string `tfsdk:"phase" json:"phase,omitempty"` - ResizeStatus *string `tfsdk:"resize_status" json:"resizeStatus,omitempty"` + CurrentVolumeAttributesClassName *string `tfsdk:"current_volume_attributes_class_name" json:"currentVolumeAttributesClassName,omitempty"` + ModifyVolumeStatus *struct { + Status *string `tfsdk:"status" json:"status,omitempty"` + TargetVolumeAttributesClassName *string `tfsdk:"target_volume_attributes_class_name" json:"targetVolumeAttributesClassName,omitempty"` + } `tfsdk:"modify_volume_status" json:"modifyVolumeStatus,omitempty"` + Phase *string `tfsdk:"phase" json:"phase,omitempty"` } `tfsdk:"status" json:"status,omitempty"` } `tfsdk:"claim_templates" json:"claimTemplates,omitempty"` ClusterAdvertiseAddress *string `tfsdk:"cluster_advertise_address" json:"clusterAdvertiseAddress,omitempty"` + ClusterDomainName *string `tfsdk:"cluster_domain_name" json:"clusterDomainName,omitempty"` ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` ConfigNamespaceSelector *struct { MatchExpressions *[]struct { @@ -111,8 +114,16 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { } `tfsdk:"config_namespace_selector" json:"configNamespaceSelector,omitempty"` ConfigRawYaml *string `tfsdk:"config_raw_yaml" json:"configRawYaml,omitempty"` ConfigReloaderExtraArgs *map[string]string `tfsdk:"config_reloader_extra_args" json:"configReloaderExtraArgs,omitempty"` - ConfigSecret *string `tfsdk:"config_secret" json:"configSecret,omitempty"` - ConfigSelector *struct { + ConfigReloaderImageTag *string `tfsdk:"config_reloader_image_tag" json:"configReloaderImageTag,omitempty"` + ConfigReloaderResources *struct { + Claims *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"claims" json:"claims,omitempty"` + Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` + Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` + } `tfsdk:"config_reloader_resources" json:"configReloaderResources,omitempty"` + ConfigSecret *string `tfsdk:"config_secret" json:"configSecret,omitempty"` + ConfigSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` Operator *string `tfsdk:"operator" json:"operator,omitempty"` @@ -123,6 +134,7 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` DisableNamespaceMatcher *bool `tfsdk:"disable_namespace_matcher" json:"disableNamespaceMatcher,omitempty"` DisableRouteContinueEnforce *bool `tfsdk:"disable_route_continue_enforce" json:"disableRouteContinueEnforce,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { @@ -131,12 +143,71 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { } `tfsdk:"options" json:"options,omitempty"` Searches *[]string `tfsdk:"searches" json:"searches,omitempty"` } `tfsdk:"dns_config" json:"dnsConfig,omitempty"` - DnsPolicy *string `tfsdk:"dns_policy" json:"dnsPolicy,omitempty"` - ExternalURL *string `tfsdk:"external_url" json:"externalURL,omitempty"` - ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` - ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Image *struct { + DnsPolicy *string `tfsdk:"dns_policy" json:"dnsPolicy,omitempty"` + EnforcedTopRouteMatchers *[]string `tfsdk:"enforced_top_route_matchers" json:"enforcedTopRouteMatchers,omitempty"` + ExternalURL *string `tfsdk:"external_url" json:"externalURL,omitempty"` + ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` + ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` + GossipConfig *struct { + Tls_client_config *struct { + Ca_file *string `tfsdk:"ca_file" json:"ca_file,omitempty"` + Ca_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"ca_secret_ref" json:"ca_secret_ref,omitempty"` + Cert_file *string `tfsdk:"cert_file" json:"cert_file,omitempty"` + Cert_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"cert_secret_ref" json:"cert_secret_ref,omitempty"` + Insecure_skip_verify *bool `tfsdk:"insecure_skip_verify" json:"insecure_skip_verify,omitempty"` + Key_file *string `tfsdk:"key_file" json:"key_file,omitempty"` + Key_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret_ref" json:"key_secret_ref,omitempty"` + Server_name *string `tfsdk:"server_name" json:"server_name,omitempty"` + } `tfsdk:"tls_client_config" json:"tls_client_config,omitempty"` + Tls_server_config *struct { + Cert_file *string `tfsdk:"cert_file" json:"cert_file,omitempty"` + Cert_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"cert_secret_ref" json:"cert_secret_ref,omitempty"` + Cipher_suites *[]string `tfsdk:"cipher_suites" json:"cipher_suites,omitempty"` + Client_auth_type *string `tfsdk:"client_auth_type" json:"client_auth_type,omitempty"` + Client_ca_file *string `tfsdk:"client_ca_file" json:"client_ca_file,omitempty"` + Client_ca_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_ca_secret_ref" json:"client_ca_secret_ref,omitempty"` + Curve_preferences *[]string `tfsdk:"curve_preferences" json:"curve_preferences,omitempty"` + Key_file *string `tfsdk:"key_file" json:"key_file,omitempty"` + Key_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret_ref" json:"key_secret_ref,omitempty"` + Max_version *string `tfsdk:"max_version" json:"max_version,omitempty"` + Min_version *string `tfsdk:"min_version" json:"min_version,omitempty"` + Prefer_server_cipher_suites *bool `tfsdk:"prefer_server_cipher_suites" json:"prefer_server_cipher_suites,omitempty"` + } `tfsdk:"tls_server_config" json:"tls_server_config,omitempty"` + } `tfsdk:"gossip_config" json:"gossipConfig,omitempty"` + HostAliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Image *struct { PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` Repository *string `tfsdk:"repository" json:"repository,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` @@ -162,6 +233,7 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"pod_metadata" json:"podMetadata,omitempty"` + Port *string `tfsdk:"port" json:"port,omitempty"` PortName *string `tfsdk:"port_name" json:"portName,omitempty"` PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` ReadinessGates *[]struct { @@ -225,9 +297,6 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -239,15 +308,17 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` Status *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` - Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` - Conditions *[]struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + AllocatedResourceStatuses *map[string]string `tfsdk:"allocated_resource_statuses" json:"allocatedResourceStatuses,omitempty"` + AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` + Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` + Conditions *[]struct { LastProbeTime *string `tfsdk:"last_probe_time" json:"lastProbeTime,omitempty"` LastTransitionTime *string `tfsdk:"last_transition_time" json:"lastTransitionTime,omitempty"` Message *string `tfsdk:"message" json:"message,omitempty"` @@ -255,8 +326,12 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { Status *string `tfsdk:"status" json:"status,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"conditions" json:"conditions,omitempty"` - Phase *string `tfsdk:"phase" json:"phase,omitempty"` - ResizeStatus *string `tfsdk:"resize_status" json:"resizeStatus,omitempty"` + CurrentVolumeAttributesClassName *string `tfsdk:"current_volume_attributes_class_name" json:"currentVolumeAttributesClassName,omitempty"` + ModifyVolumeStatus *struct { + Status *string `tfsdk:"status" json:"status,omitempty"` + TargetVolumeAttributesClassName *string `tfsdk:"target_volume_attributes_class_name" json:"targetVolumeAttributesClassName,omitempty"` + } `tfsdk:"modify_volume_status" json:"modifyVolumeStatus,omitempty"` + Phase *string `tfsdk:"phase" json:"phase,omitempty"` } `tfsdk:"status" json:"status,omitempty"` } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` } `tfsdk:"storage" json:"storage,omitempty"` @@ -273,16 +348,52 @@ type OperatorVictoriametricsComVmalertmanagerV1Beta1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` + UseVMConfigReloader *bool `tfsdk:"use_vm_config_reloader" json:"useVMConfigReloader,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` - Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` + Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` + WebConfig *struct { + Basic_auth_users *map[string]string `tfsdk:"basic_auth_users" json:"basic_auth_users,omitempty"` + Http_server_config *struct { + Headers *map[string]string `tfsdk:"headers" json:"headers,omitempty"` + Http2 *bool `tfsdk:"http2" json:"http2,omitempty"` + } `tfsdk:"http_server_config" json:"http_server_config,omitempty"` + Tls_server_config *struct { + Cert_file *string `tfsdk:"cert_file" json:"cert_file,omitempty"` + Cert_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"cert_secret_ref" json:"cert_secret_ref,omitempty"` + Cipher_suites *[]string `tfsdk:"cipher_suites" json:"cipher_suites,omitempty"` + Client_auth_type *string `tfsdk:"client_auth_type" json:"client_auth_type,omitempty"` + Client_ca_file *string `tfsdk:"client_ca_file" json:"client_ca_file,omitempty"` + Client_ca_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_ca_secret_ref" json:"client_ca_secret_ref,omitempty"` + Curve_preferences *[]string `tfsdk:"curve_preferences" json:"curve_preferences,omitempty"` + Key_file *string `tfsdk:"key_file" json:"key_file,omitempty"` + Key_secret_ref *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret_ref" json:"key_secret_ref,omitempty"` + Max_version *string `tfsdk:"max_version" json:"max_version,omitempty"` + Min_version *string `tfsdk:"min_version" json:"min_version,omitempty"` + Prefer_server_cipher_suites *bool `tfsdk:"prefer_server_cipher_suites" json:"prefer_server_cipher_suites,omitempty"` + } `tfsdk:"tls_server_config" json:"tls_server_config,omitempty"` + } `tfsdk:"web_config" json:"webConfig,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } @@ -502,25 +613,6 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -606,6 +698,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -640,9 +740,18 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "allocated_resource_statuses": schema.MapAttribute{ + Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "allocated_resources": schema.MapAttribute{ - Description: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", ElementType: types.StringType, Required: false, Optional: true, @@ -659,8 +768,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "conditions": schema.ListNestedAttribute{ - Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "last_probe_time": schema.StringAttribute{ @@ -694,8 +803,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "reason": schema.StringAttribute{ - Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", - MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", + Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", + MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", Required: false, Optional: true, Computed: false, @@ -723,17 +832,42 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, - "phase": schema.StringAttribute{ - Description: "phase represents the current phase of PersistentVolumeClaim.", - MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", + "current_volume_attributes_class_name": schema.StringAttribute{ + Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", Required: false, Optional: true, Computed: false, }, - "resize_status": schema.StringAttribute{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + "modify_volume_status": schema.SingleNestedAttribute{ + Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + Attributes: map[string]schema.Attribute{ + "status": schema.StringAttribute{ + Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + MarkdownDescription: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + Required: true, + Optional: false, + Computed: false, + }, + + "target_volume_attributes_class_name": schema.StringAttribute{ + Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + MarkdownDescription: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "phase": schema.StringAttribute{ + Description: "phase represents the current phase of PersistentVolumeClaim.", + MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", Required: false, Optional: true, Computed: false, @@ -758,9 +892,17 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "cluster_domain_name": schema.StringAttribute{ + Description: "ClusterDomainName defines domain name suffix for in-cluster dns addresses aka .cluster.local used to build pod peer addresses for in-cluster communication", + MarkdownDescription: "ClusterDomainName defines domain name suffix for in-cluster dns addresses aka .cluster.local used to build pod peer addresses for in-cluster communication", + Required: false, + Optional: true, + Computed: false, + }, + "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMAlertmanager object, which shall be mounted into the VMAlertmanager Pods. The ConfigMaps are mounted into /etc/vm/configs/.", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMAlertmanager object, which shall be mounted into the VMAlertmanager Pods. The ConfigMaps are mounted into /etc/vm/configs/.", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -838,6 +980,60 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "config_reloader_image_tag": schema.StringAttribute{ + Description: "ConfigReloaderImageTag defines image:tag for config-reloader container", + MarkdownDescription: "ConfigReloaderImageTag defines image:tag for config-reloader container", + Required: false, + Optional: true, + Computed: false, + }, + + "config_reloader_resources": schema.SingleNestedAttribute{ + Description: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + Attributes: map[string]schema.Attribute{ + "claims": schema.ListNestedAttribute{ + Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "config_secret": schema.StringAttribute{ Description: "ConfigSecret is the name of a Kubernetes Secret in the same namespace as the VMAlertmanager object, which contains configuration for this VMAlertmanager, configuration must be inside secret key: alertmanager.yaml. It must be created by user. instance. Defaults to 'vmalertmanager-' The secret is mounted into /etc/alertmanager/config.", MarkdownDescription: "ConfigSecret is the name of a Kubernetes Secret in the same namespace as the VMAlertmanager object, which contains configuration for this VMAlertmanager, configuration must be inside secret key: alertmanager.yaml. It must be created by user. instance. Defaults to 'vmalertmanager-' The secret is mounted into /etc/alertmanager/config.", @@ -901,8 +1097,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "containers": schema.ListAttribute{ - Description: "Containers allows injecting additional containers or patching existing containers. This is meant to allow adding an authentication proxy to an VMAlertmanager pod.", - MarkdownDescription: "Containers allows injecting additional containers or patching existing containers. This is meant to allow adding an authentication proxy to an VMAlertmanager pod.", + Description: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", + MarkdownDescription: "Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc.", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -910,8 +1106,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "disable_namespace_matcher": schema.BoolAttribute{ - Description: "DisableNamespaceMatcher disables namespace label matcher for VMAlertmanagerConfig It may be useful if alert doesn't have namespace label for some reason", - MarkdownDescription: "DisableNamespaceMatcher disables namespace label matcher for VMAlertmanagerConfig It may be useful if alert doesn't have namespace label for some reason", + Description: "DisableNamespaceMatcher disables top route namespace label matcher for VMAlertmanagerConfig It may be useful if alert doesn't have namespace label for some reason", + MarkdownDescription: "DisableNamespaceMatcher disables top route namespace label matcher for VMAlertmanagerConfig It may be useful if alert doesn't have namespace label for some reason", Required: false, Optional: true, Computed: false, @@ -925,6 +1121,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "dns_config": schema.SingleNestedAttribute{ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", @@ -987,6 +1191,15 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "enforced_top_route_matchers": schema.ListAttribute{ + Description: "EnforcedTopRouteMatchers defines label matchers to be added for the top route of VMAlertmanagerConfig It allows to make some set of labels required for alerts. https://prometheus.io/docs/alerting/latest/configuration/#matcher", + MarkdownDescription: "EnforcedTopRouteMatchers defines label matchers to be added for the top route of VMAlertmanagerConfig It allows to make some set of labels required for alerts. https://prometheus.io/docs/alerting/latest/configuration/#matcher", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "external_url": schema.StringAttribute{ Description: "ExternalURL the VMAlertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if VMAlertmanager is not served from root of a DNS name.", MarkdownDescription: "ExternalURL the VMAlertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if VMAlertmanager is not served from root of a DNS name.", @@ -996,21 +1209,397 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "extra_args": schema.MapAttribute{ - Description: "ExtraArgs that will be passed to VMAlertmanager pod for example log.level: debug", - MarkdownDescription: "ExtraArgs that will be passed to VMAlertmanager pod for example log.level: debug", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMAlertmanager pod", - MarkdownDescription: "ExtraEnvs that will be added to VMAlertmanager pod", - ElementType: types.MapType{ElemType: types.StringType}, - Required: false, - Optional: true, - Computed: false, + "extra_envs": schema.ListAttribute{ + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", + ElementType: types.MapType{ElemType: types.StringType}, + Required: false, + Optional: true, + Computed: false, + }, + + "gossip_config": schema.SingleNestedAttribute{ + Description: "GossipConfig defines gossip TLS configuration for Alertmanager cluster", + MarkdownDescription: "GossipConfig defines gossip TLS configuration for Alertmanager cluster", + Attributes: map[string]schema.Attribute{ + "tls_client_config": schema.SingleNestedAttribute{ + Description: "TLSClientConfig defines client TLS configuration for alertmanager", + MarkdownDescription: "TLSClientConfig defines client TLS configuration for alertmanager", + Attributes: map[string]schema.Attribute{ + "ca_file": schema.StringAttribute{ + Description: "CAFile defines path to the pre-mounted file with CA mutually exclusive with CASecretRef", + MarkdownDescription: "CAFile defines path to the pre-mounted file with CA mutually exclusive with CASecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "ca_secret_ref": schema.SingleNestedAttribute{ + Description: "CA defines reference for secret with CA content under given key mutually exclusive with CAFile", + MarkdownDescription: "CA defines reference for secret with CA content under given key mutually exclusive with CAFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "CertFile defines path to the pre-mounted file with certificate mutually exclusive with CertSecretRef", + MarkdownDescription: "CertFile defines path to the pre-mounted file with certificate mutually exclusive with CertSecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "cert_secret_ref": schema.SingleNestedAttribute{ + Description: "CertSecretRef defines reference for secret with certificate content under given key mutually exclusive with CertFile", + MarkdownDescription: "CertSecretRef defines reference for secret with certificate content under given key mutually exclusive with CertFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Cert defines reference for secret with CA content under given key mutually exclusive with CertFile", + MarkdownDescription: "Cert defines reference for secret with CA content under given key mutually exclusive with CertFile", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "KeyFile defines path to the pre-mounted file with certificate key mutually exclusive with KeySecretRef", + MarkdownDescription: "KeyFile defines path to the pre-mounted file with certificate key mutually exclusive with KeySecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret_ref": schema.SingleNestedAttribute{ + Description: "Key defines reference for secret with certificate key content under given key mutually exclusive with KeyFile", + MarkdownDescription: "Key defines reference for secret with certificate key content under given key mutually exclusive with KeyFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "ServerName indicates a name of a server", + MarkdownDescription: "ServerName indicates a name of a server", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "tls_server_config": schema.SingleNestedAttribute{ + Description: "TLSServerConfig defines server TLS configuration for alertmanager", + MarkdownDescription: "TLSServerConfig defines server TLS configuration for alertmanager", + Attributes: map[string]schema.Attribute{ + "cert_file": schema.StringAttribute{ + Description: "CertFile defines path to the pre-mounted file with certificate mutually exclusive with CertSecretRef", + MarkdownDescription: "CertFile defines path to the pre-mounted file with certificate mutually exclusive with CertSecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "cert_secret_ref": schema.SingleNestedAttribute{ + Description: "CertSecretRef defines reference for secret with certificate content under given key mutually exclusive with CertFile", + MarkdownDescription: "CertSecretRef defines reference for secret with certificate content under given key mutually exclusive with CertFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cipher_suites": schema.ListAttribute{ + Description: "CipherSuites defines list of supported cipher suites for TLS versions up to TLS 1.2 https://golang.org/pkg/crypto/tls/#pkg-constants", + MarkdownDescription: "CipherSuites defines list of supported cipher suites for TLS versions up to TLS 1.2 https://golang.org/pkg/crypto/tls/#pkg-constants", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "client_auth_type": schema.StringAttribute{ + Description: "Cert defines reference for secret with CA content under given key mutually exclusive with CertFile ClientAuthType defines server policy for client authentication If you want to enable client authentication (aka mTLS), you need to use RequireAndVerifyClientCert Note, mTLS is supported only at enterprise version of VictoriaMetrics components", + MarkdownDescription: "Cert defines reference for secret with CA content under given key mutually exclusive with CertFile ClientAuthType defines server policy for client authentication If you want to enable client authentication (aka mTLS), you need to use RequireAndVerifyClientCert Note, mTLS is supported only at enterprise version of VictoriaMetrics components", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("NoClientCert", "RequireAndVerifyClientCert"), + }, + }, + + "client_ca_file": schema.StringAttribute{ + Description: "ClientCAFile defines path to the pre-mounted file with CA mutually exclusive with ClientCASecretRef", + MarkdownDescription: "ClientCAFile defines path to the pre-mounted file with CA mutually exclusive with ClientCASecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "client_ca_secret_ref": schema.SingleNestedAttribute{ + Description: "ClientCASecretRef defines reference for secret with CA content under given key mutually exclusive with ClientCAFile", + MarkdownDescription: "ClientCASecretRef defines reference for secret with CA content under given key mutually exclusive with ClientCAFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "curve_preferences": schema.ListAttribute{ + Description: "CurvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference order. https://golang.org/pkg/crypto/tls/#CurveID", + MarkdownDescription: "CurvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference order. https://golang.org/pkg/crypto/tls/#CurveID", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "KeyFile defines path to the pre-mounted file with certificate key mutually exclusive with KeySecretRef", + MarkdownDescription: "KeyFile defines path to the pre-mounted file with certificate key mutually exclusive with KeySecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret_ref": schema.SingleNestedAttribute{ + Description: "Key defines reference for secret with certificate key content under given key mutually exclusive with KeyFile", + MarkdownDescription: "Key defines reference for secret with certificate key content under given key mutually exclusive with KeyFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "max_version": schema.StringAttribute{ + Description: "MaxVersion maximum TLS version that is acceptable.", + MarkdownDescription: "MaxVersion maximum TLS version that is acceptable.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "MinVersion minimum TLS version that is acceptable.", + MarkdownDescription: "MinVersion minimum TLS version that is acceptable.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "prefer_server_cipher_suites": schema.BoolAttribute{ + Description: "PreferServerCipherSuites controls whether the server selects the client's most preferred ciphersuite", + MarkdownDescription: "PreferServerCipherSuites controls whether the server selects the client's most preferred ciphersuite", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + MarkdownDescription: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, }, "host_network": schema.BoolAttribute{ @@ -1021,9 +1610,37 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMAlertmanager if no specified operator uses default config version", - MarkdownDescription: "Image - docker image settings for VMAlertmanager if no specified operator uses default config version", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -1060,8 +1677,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1074,8 +1691,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMAlertmanager configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMAlertmanager configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -1105,6 +1722,9 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Required: false, Optional: true, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("logfmt", "json"), + }, }, "log_level": schema.StringAttribute{ @@ -1113,11 +1733,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Required: false, Optional: true, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("debug", "info", "warn", "error", "DEBUG", "INFO", "WARN", "ERROR"), + }, }, "min_ready_seconds": schema.Int64Attribute{ - Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", - MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", Required: false, Optional: true, Computed: false, @@ -1209,6 +1832,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "port": schema.StringAttribute{ + Description: "Port listen address", + MarkdownDescription: "Port listen address", + Required: false, + Optional: true, + Computed: false, + }, + "port_name": schema.StringAttribute{ Description: "PortName used for the pods and governing service. This defaults to web", MarkdownDescription: "PortName used for the pods and governing service. This defaults to web", @@ -1254,19 +1885,16 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the running cluster equal to the expected", - MarkdownDescription: "ReplicaCount Size is the expected size of the alertmanager cluster. The controller will eventually make the size of the running cluster equal to the expected", + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", Required: false, Optional: true, Computed: false, - Validators: []validator.Int64{ - int64validator.AtLeast(0), - }, }, "resources": schema.SingleNestedAttribute{ - Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", Attributes: map[string]schema.Attribute{ "claims": schema.ListNestedAttribute{ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", @@ -1322,8 +1950,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -1362,8 +1990,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the VMAlertmanager object, which shall be mounted into the VMAlertmanager Pods. The Secrets are mounted into /etc/vm/secrets/", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the VMAlertmanager object, which shall be mounted into the VMAlertmanager Pods. The Secrets are mounted into /etc/vm/secrets/", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -1388,8 +2016,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to use", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use", + Description: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", Required: false, Optional: true, Computed: false, @@ -1657,25 +2285,6 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -1761,6 +2370,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -1795,9 +2412,18 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "allocated_resource_statuses": schema.MapAttribute{ + Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "allocated_resources": schema.MapAttribute{ - Description: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", ElementType: types.StringType, Required: false, Optional: true, @@ -1814,8 +2440,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "conditions": schema.ListNestedAttribute{ - Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "last_probe_time": schema.StringAttribute{ @@ -1849,8 +2475,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "reason": schema.StringAttribute{ - Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", - MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", + Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", + MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", Required: false, Optional: true, Computed: false, @@ -1878,17 +2504,42 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, - "phase": schema.StringAttribute{ - Description: "phase represents the current phase of PersistentVolumeClaim.", - MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", + "current_volume_attributes_class_name": schema.StringAttribute{ + Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", Required: false, Optional: true, Computed: false, }, - "resize_status": schema.StringAttribute{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + "modify_volume_status": schema.SingleNestedAttribute{ + Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + Attributes: map[string]schema.Attribute{ + "status": schema.StringAttribute{ + Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + MarkdownDescription: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + Required: true, + Optional: false, + Computed: false, + }, + + "target_volume_attributes_class_name": schema.StringAttribute{ + Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + MarkdownDescription: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "phase": schema.StringAttribute{ + Description: "phase represents the current phase of PersistentVolumeClaim.", + MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", Required: false, Optional: true, Computed: false, @@ -1923,8 +2574,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2004,6 +2655,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + "use_strict_security": schema.BoolAttribute{ Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", @@ -2012,9 +2671,17 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "use_vm_config_reloader": schema.BoolAttribute{ + Description: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + MarkdownDescription: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the alertmanager container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the alertmanager container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -2026,8 +2693,8 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -2049,6 +2716,14 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -2072,13 +2747,248 @@ func (r *OperatorVictoriametricsComVmalertmanagerV1Beta1Manifest) Schema(_ conte }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, Computed: false, }, + + "web_config": schema.SingleNestedAttribute{ + Description: "WebConfig defines configuration for webserver https://github.com/prometheus/alertmanager/blob/main/docs/https.md", + MarkdownDescription: "WebConfig defines configuration for webserver https://github.com/prometheus/alertmanager/blob/main/docs/https.md", + Attributes: map[string]schema.Attribute{ + "basic_auth_users": schema.MapAttribute{ + Description: "BasicAuthUsers Usernames and hashed passwords that have full access to the web server Passwords must be hashed with bcrypt", + MarkdownDescription: "BasicAuthUsers Usernames and hashed passwords that have full access to the web server Passwords must be hashed with bcrypt", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "http_server_config": schema.SingleNestedAttribute{ + Description: "HTTPServerConfig defines http server configuration for alertmanager web server", + MarkdownDescription: "HTTPServerConfig defines http server configuration for alertmanager web server", + Attributes: map[string]schema.Attribute{ + "headers": schema.MapAttribute{ + Description: "Headers defines list of headers that can be added to HTTP responses.", + MarkdownDescription: "Headers defines list of headers that can be added to HTTP responses.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "http2": schema.BoolAttribute{ + Description: "HTTP2 enables HTTP/2 support. Note that HTTP/2 is only supported with TLS. This can not be changed on the fly.", + MarkdownDescription: "HTTP2 enables HTTP/2 support. Note that HTTP/2 is only supported with TLS. This can not be changed on the fly.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "tls_server_config": schema.SingleNestedAttribute{ + Description: "TLSServerConfig defines server TLS configuration for alertmanager", + MarkdownDescription: "TLSServerConfig defines server TLS configuration for alertmanager", + Attributes: map[string]schema.Attribute{ + "cert_file": schema.StringAttribute{ + Description: "CertFile defines path to the pre-mounted file with certificate mutually exclusive with CertSecretRef", + MarkdownDescription: "CertFile defines path to the pre-mounted file with certificate mutually exclusive with CertSecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "cert_secret_ref": schema.SingleNestedAttribute{ + Description: "CertSecretRef defines reference for secret with certificate content under given key mutually exclusive with CertFile", + MarkdownDescription: "CertSecretRef defines reference for secret with certificate content under given key mutually exclusive with CertFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cipher_suites": schema.ListAttribute{ + Description: "CipherSuites defines list of supported cipher suites for TLS versions up to TLS 1.2 https://golang.org/pkg/crypto/tls/#pkg-constants", + MarkdownDescription: "CipherSuites defines list of supported cipher suites for TLS versions up to TLS 1.2 https://golang.org/pkg/crypto/tls/#pkg-constants", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "client_auth_type": schema.StringAttribute{ + Description: "Cert defines reference for secret with CA content under given key mutually exclusive with CertFile ClientAuthType defines server policy for client authentication If you want to enable client authentication (aka mTLS), you need to use RequireAndVerifyClientCert Note, mTLS is supported only at enterprise version of VictoriaMetrics components", + MarkdownDescription: "Cert defines reference for secret with CA content under given key mutually exclusive with CertFile ClientAuthType defines server policy for client authentication If you want to enable client authentication (aka mTLS), you need to use RequireAndVerifyClientCert Note, mTLS is supported only at enterprise version of VictoriaMetrics components", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("NoClientCert", "RequireAndVerifyClientCert"), + }, + }, + + "client_ca_file": schema.StringAttribute{ + Description: "ClientCAFile defines path to the pre-mounted file with CA mutually exclusive with ClientCASecretRef", + MarkdownDescription: "ClientCAFile defines path to the pre-mounted file with CA mutually exclusive with ClientCASecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "client_ca_secret_ref": schema.SingleNestedAttribute{ + Description: "ClientCASecretRef defines reference for secret with CA content under given key mutually exclusive with ClientCAFile", + MarkdownDescription: "ClientCASecretRef defines reference for secret with CA content under given key mutually exclusive with ClientCAFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "curve_preferences": schema.ListAttribute{ + Description: "CurvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference order. https://golang.org/pkg/crypto/tls/#CurveID", + MarkdownDescription: "CurvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference order. https://golang.org/pkg/crypto/tls/#CurveID", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "KeyFile defines path to the pre-mounted file with certificate key mutually exclusive with KeySecretRef", + MarkdownDescription: "KeyFile defines path to the pre-mounted file with certificate key mutually exclusive with KeySecretRef", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret_ref": schema.SingleNestedAttribute{ + Description: "Key defines reference for secret with certificate key content under given key mutually exclusive with KeyFile", + MarkdownDescription: "Key defines reference for secret with certificate key content under given key mutually exclusive with KeyFile", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "max_version": schema.StringAttribute{ + Description: "MaxVersion maximum TLS version that is acceptable.", + MarkdownDescription: "MaxVersion maximum TLS version that is acceptable.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "min_version": schema.StringAttribute{ + Description: "MinVersion minimum TLS version that is acceptable.", + MarkdownDescription: "MinVersion minimum TLS version that is acceptable.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("TLS10", "TLS11", "TLS12", "TLS13"), + }, + }, + + "prefer_server_cipher_suites": schema.BoolAttribute{ + Description: "PreferServerCipherSuites controls whether the server selects the client's most preferred ciphersuite", + MarkdownDescription: "PreferServerCipherSuites controls whether the server selects the client's most preferred ciphersuite", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, Required: true, Optional: false, diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_auth_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_auth_v1beta1_manifest.go index f946c15ba..2f005b761 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_auth_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_auth_v1beta1_manifest.go @@ -43,14 +43,23 @@ type OperatorVictoriametricsComVmauthV1Beta1ManifestData struct { } `tfsdk:"metadata" json:"metadata"` Spec *struct { - Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` - ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` - ConfigReloaderExtraArgs *map[string]string `tfsdk:"config_reloader_extra_args" json:"configReloaderExtraArgs,omitempty"` - ConfigSecret *string `tfsdk:"config_secret" json:"configSecret,omitempty"` - Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` - Default_url *[]string `tfsdk:"default_url" json:"default_url,omitempty"` - Discover_backend_ips *bool `tfsdk:"discover_backend_ips" json:"discover_backend_ips,omitempty"` - DnsConfig *struct { + Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + ConfigReloaderExtraArgs *map[string]string `tfsdk:"config_reloader_extra_args" json:"configReloaderExtraArgs,omitempty"` + ConfigReloaderImageTag *string `tfsdk:"config_reloader_image_tag" json:"configReloaderImageTag,omitempty"` + ConfigReloaderResources *struct { + Claims *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"claims" json:"claims,omitempty"` + Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` + Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` + } `tfsdk:"config_reloader_resources" json:"configReloaderResources,omitempty"` + ConfigSecret *string `tfsdk:"config_secret" json:"configSecret,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + Default_url *[]string `tfsdk:"default_url" json:"default_url,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + Discover_backend_ips *bool `tfsdk:"discover_backend_ips" json:"discover_backend_ips,omitempty"` + DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -67,8 +76,12 @@ type OperatorVictoriametricsComVmauthV1Beta1ManifestData struct { Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` Ip *string `tfsdk:"ip" json:"ip,omitempty"` } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Image *struct { + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Image *struct { PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` Repository *string `tfsdk:"repository" json:"repository,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` @@ -235,7 +248,9 @@ type OperatorVictoriametricsComVmauthV1Beta1ManifestData struct { Src_query_args *[]string `tfsdk:"src_query_args" json:"src_query_args,omitempty"` Url_prefix *[]string `tfsdk:"url_prefix" json:"url_prefix,omitempty"` } `tfsdk:"unauthorized_access_config" json:"unauthorizedAccessConfig,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` + UseVMConfigReloader *bool `tfsdk:"use_vm_config_reloader" json:"useVMConfigReloader,omitempty"` UserNamespaceSelector *struct { MatchExpressions *[]struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -253,12 +268,13 @@ type OperatorVictoriametricsComVmauthV1Beta1ManifestData struct { MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"user_selector" json:"userSelector,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` @@ -351,8 +367,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMAuth object, which shall be mounted into the VMAuth Pods.", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMAuth object, which shall be mounted into the VMAuth Pods.", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -368,6 +384,60 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte Computed: false, }, + "config_reloader_image_tag": schema.StringAttribute{ + Description: "ConfigReloaderImageTag defines image:tag for config-reloader container", + MarkdownDescription: "ConfigReloaderImageTag defines image:tag for config-reloader container", + Required: false, + Optional: true, + Computed: false, + }, + + "config_reloader_resources": schema.SingleNestedAttribute{ + Description: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + Attributes: map[string]schema.Attribute{ + "claims": schema.ListNestedAttribute{ + Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "limits": schema.MapAttribute{ + Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "requests": schema.MapAttribute{ + Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + MarkdownDescription: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "config_secret": schema.StringAttribute{ Description: "ConfigSecret is the name of a Kubernetes Secret in the same namespace as the VMAuth object, which contains auth configuration for vmauth, configuration must be inside secret key: config.yaml. It must be created and managed manually. If it's defined, configuration for vmauth becomes unmanaged and operator'll not create any related secrets/config-reloaders", MarkdownDescription: "ConfigSecret is the name of a Kubernetes Secret in the same namespace as the VMAuth object, which contains auth configuration for vmauth, configuration must be inside secret key: config.yaml. It must be created and managed manually. If it's defined, configuration for vmauth becomes unmanaged and operator'll not create any related secrets/config-reloaders", @@ -394,6 +464,14 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "discover_backend_ips": schema.BoolAttribute{ Description: "DiscoverBackendIPs instructs discovering URLPrefix backend IPs via DNS.", MarkdownDescription: "DiscoverBackendIPs instructs discovering URLPrefix backend IPs via DNS.", @@ -465,16 +543,16 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "drop_src_path_prefix_parts": schema.Int64Attribute{ - Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", - MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", + Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", + MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", Required: false, Optional: true, Computed: false, }, "extra_args": schema.MapAttribute{ - Description: "ExtraArgs that will be passed to VMAuth pod for example remoteWrite.tmpDataPath: /tmp", - MarkdownDescription: "ExtraArgs that will be passed to VMAuth pod for example remoteWrite.tmpDataPath: /tmp", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, @@ -482,8 +560,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMAuth pod", - MarkdownDescription: "ExtraEnvs that will be added to VMAuth pod", + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -516,8 +594,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte "ip": schema.StringAttribute{ Description: "IP address of the host file entry.", MarkdownDescription: "IP address of the host file entry.", - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, }, @@ -535,9 +613,37 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMAuth if no specified operator uses default config version", - MarkdownDescription: "Image - docker image settings for VMAuth if no specified operator uses default config version", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -574,8 +680,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -823,8 +929,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the vmSingle configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the vmSingle configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -832,8 +938,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "ip_filters": schema.SingleNestedAttribute{ - Description: "IPFilters defines per target src ip filters supported only with enterprise version of vmauth https://docs.victoriametrics.com/vmauth.html#ip-filters", - MarkdownDescription: "IPFilters defines per target src ip filters supported only with enterprise version of vmauth https://docs.victoriametrics.com/vmauth.html#ip-filters", + Description: "IPFilters defines per target src ip filters supported only with enterprise version of [vmauth](https://docs.victoriametrics.com/vmauth/#ip-filters)", + MarkdownDescription: "IPFilters defines per target src ip filters supported only with enterprise version of [vmauth](https://docs.victoriametrics.com/vmauth/#ip-filters)", Attributes: map[string]schema.Attribute{ "allow_list": schema.ListAttribute{ Description: "", @@ -859,12 +965,12 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "license": schema.SingleNestedAttribute{ - Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", - MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", + Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", + MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", - MarkdownDescription: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", + Description: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", + MarkdownDescription: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", Required: false, Optional: true, Computed: false, @@ -883,8 +989,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -918,8 +1024,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "load_balancing_policy": schema.StringAttribute{ - Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", - MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", + Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", + MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", Required: false, Optional: true, Computed: false, @@ -959,8 +1065,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "min_ready_seconds": schema.Int64Attribute{ - Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", - MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", Required: false, Optional: true, Computed: false, @@ -1053,16 +1159,16 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "port": schema.StringAttribute{ - Description: "Port listen port", - MarkdownDescription: "Port listen port", + Description: "Port listen address", + MarkdownDescription: "Port listen address", Required: false, Optional: true, Computed: false, }, "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName assigned to the Pods", - MarkdownDescription: "PriorityClassName assigned to the Pods", + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", Required: false, Optional: true, Computed: false, @@ -1097,8 +1203,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount is the expected size of the VMAuth", - MarkdownDescription: "ReplicaCount is the expected size of the VMAuth", + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", Required: false, Optional: true, Computed: false, @@ -1169,8 +1275,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -1193,8 +1299,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the VMAuth object, which shall be mounted into the VMAuth Pods.", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the VMAuth object, which shall be mounted into the VMAuth Pods.", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -1219,8 +1325,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to use to run the VMAuth Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the VMAuth Pods.", + Description: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", Required: false, Optional: true, Computed: false, @@ -1334,8 +1440,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1367,8 +1473,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1417,8 +1523,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1450,8 +1556,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1512,8 +1618,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1619,8 +1725,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "drop_src_path_prefix_parts": schema.Int64Attribute{ - Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", - MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", + Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", + MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", Required: false, Optional: true, Computed: false, @@ -1636,8 +1742,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "load_balancing_policy": schema.StringAttribute{ - Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", - MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", + Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", + MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", Required: false, Optional: true, Computed: false, @@ -1715,6 +1821,14 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte Computed: false, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + "use_strict_security": schema.BoolAttribute{ Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", @@ -1723,6 +1837,14 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte Computed: false, }, + "use_vm_config_reloader": schema.BoolAttribute{ + Description: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + MarkdownDescription: "UseVMConfigReloader replaces prometheus-like config-reloader with vm one. It uses secrets watch instead of file watch which greatly increases speed of config updates", + Required: false, + Optional: true, + Computed: false, + }, + "user_namespace_selector": schema.SingleNestedAttribute{ Description: "UserNamespaceSelector Namespaces to be selected for VMAuth discovery. Works in combination with Selector. NamespaceSelector nil - only objects at VMAuth namespace. Selector nil - only objects at NamespaceSelector namespaces. If both nil - behaviour controlled by selectAllByDefault", MarkdownDescription: "UserNamespaceSelector Namespaces to be selected for VMAuth discovery. Works in combination with Selector. NamespaceSelector nil - only objects at VMAuth namespace. Selector nil - only objects at NamespaceSelector namespaces. If both nil - behaviour controlled by selectAllByDefault", @@ -1832,8 +1954,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMAuth container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMAuth container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -1845,8 +1967,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -1868,6 +1990,14 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -1891,8 +2021,8 @@ func (r *OperatorVictoriametricsComVmauthV1Beta1Manifest) Schema(_ context.Conte }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output deploy definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output deploy definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_cluster_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_cluster_v1beta1_manifest.go index e1f98804d..c209c224a 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_cluster_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_cluster_v1beta1_manifest.go @@ -43,8 +43,9 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { } `tfsdk:"metadata" json:"metadata"` Spec *struct { - ClusterVersion *string `tfsdk:"cluster_version" json:"clusterVersion,omitempty"` - ImagePullSecrets *[]struct { + ClusterDomainName *string `tfsdk:"cluster_domain_name" json:"clusterDomainName,omitempty"` + ClusterVersion *string `tfsdk:"cluster_version" json:"clusterVersion,omitempty"` + ImagePullSecrets *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` License *struct { @@ -61,11 +62,12 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { ServiceAccountName *string `tfsdk:"service_account_name" json:"serviceAccountName,omitempty"` UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` Vminsert *struct { - Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` - ClusterNativeListenPort *string `tfsdk:"cluster_native_listen_port" json:"clusterNativeListenPort,omitempty"` - ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` - Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` - DnsConfig *struct { + Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` + ClusterNativeListenPort *string `tfsdk:"cluster_native_listen_port" json:"clusterNativeListenPort,omitempty"` + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -76,13 +78,24 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { DnsPolicy *string `tfsdk:"dns_policy" json:"dnsPolicy,omitempty"` ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Hpa *map[string]string `tfsdk:"hpa" json:"hpa,omitempty"` - Image *struct { + HostAliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Hpa *map[string]string `tfsdk:"hpa" json:"hpa,omitempty"` + Image *struct { PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` Repository *string `tfsdk:"repository" json:"repository,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` } `tfsdk:"image" json:"image,omitempty"` + ImagePullSecrets *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` InitContainers *[]map[string]string `tfsdk:"init_containers" json:"initContainers,omitempty"` InsertPorts *struct { GraphitePort *string `tfsdk:"graphite_port" json:"graphitePort,omitempty"` @@ -95,6 +108,7 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` MinReadySeconds *int64 `tfsdk:"min_ready_seconds" json:"minReadySeconds,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` + Paused *bool `tfsdk:"paused" json:"paused,omitempty"` PodDisruptionBudget *struct { MaxUnavailable *string `tfsdk:"max_unavailable" json:"maxUnavailable,omitempty"` MinAvailable *string `tfsdk:"min_available" json:"minAvailable,omitempty"` @@ -149,13 +163,16 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { } `tfsdk:"tolerations" json:"tolerations,omitempty"` TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` UpdateStrategy *string `tfsdk:"update_strategy" json:"updateStrategy,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` + UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"vminsert" json:"vminsert,omitempty"` @@ -180,9 +197,6 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -194,15 +208,17 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` Status *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` - Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` - Conditions *[]struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + AllocatedResourceStatuses *map[string]string `tfsdk:"allocated_resource_statuses" json:"allocatedResourceStatuses,omitempty"` + AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` + Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` + Conditions *[]struct { LastProbeTime *string `tfsdk:"last_probe_time" json:"lastProbeTime,omitempty"` LastTransitionTime *string `tfsdk:"last_transition_time" json:"lastTransitionTime,omitempty"` Message *string `tfsdk:"message" json:"message,omitempty"` @@ -210,14 +226,19 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Status *string `tfsdk:"status" json:"status,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"conditions" json:"conditions,omitempty"` - Phase *string `tfsdk:"phase" json:"phase,omitempty"` - ResizeStatus *string `tfsdk:"resize_status" json:"resizeStatus,omitempty"` + CurrentVolumeAttributesClassName *string `tfsdk:"current_volume_attributes_class_name" json:"currentVolumeAttributesClassName,omitempty"` + ModifyVolumeStatus *struct { + Status *string `tfsdk:"status" json:"status,omitempty"` + TargetVolumeAttributesClassName *string `tfsdk:"target_volume_attributes_class_name" json:"targetVolumeAttributesClassName,omitempty"` + } `tfsdk:"modify_volume_status" json:"modifyVolumeStatus,omitempty"` + Phase *string `tfsdk:"phase" json:"phase,omitempty"` } `tfsdk:"status" json:"status,omitempty"` } `tfsdk:"claim_templates" json:"claimTemplates,omitempty"` - ClusterNativeListenPort *string `tfsdk:"cluster_native_listen_port" json:"clusterNativeListenPort,omitempty"` - ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` - Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` - DnsConfig *struct { + ClusterNativeListenPort *string `tfsdk:"cluster_native_listen_port" json:"clusterNativeListenPort,omitempty"` + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -228,19 +249,31 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { DnsPolicy *string `tfsdk:"dns_policy" json:"dnsPolicy,omitempty"` ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Hpa *map[string]string `tfsdk:"hpa" json:"hpa,omitempty"` - Image *struct { + HostAliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Hpa *map[string]string `tfsdk:"hpa" json:"hpa,omitempty"` + Image *struct { PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` Repository *string `tfsdk:"repository" json:"repository,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` } `tfsdk:"image" json:"image,omitempty"` + ImagePullSecrets *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` InitContainers *[]map[string]string `tfsdk:"init_containers" json:"initContainers,omitempty"` LivenessProbe *map[string]string `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` LogFormat *string `tfsdk:"log_format" json:"logFormat,omitempty"` LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` MinReadySeconds *int64 `tfsdk:"min_ready_seconds" json:"minReadySeconds,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` + Paused *bool `tfsdk:"paused" json:"paused,omitempty"` PersistentVolume *struct { DisableMountSubPath *bool `tfsdk:"disable_mount_sub_path" json:"disableMountSubPath,omitempty"` EmptyDir *struct { @@ -318,9 +351,6 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -332,15 +362,17 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` Status *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` - Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` - Conditions *[]struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + AllocatedResourceStatuses *map[string]string `tfsdk:"allocated_resource_statuses" json:"allocatedResourceStatuses,omitempty"` + AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` + Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` + Conditions *[]struct { LastProbeTime *string `tfsdk:"last_probe_time" json:"lastProbeTime,omitempty"` LastTransitionTime *string `tfsdk:"last_transition_time" json:"lastTransitionTime,omitempty"` Message *string `tfsdk:"message" json:"message,omitempty"` @@ -348,8 +380,12 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Status *string `tfsdk:"status" json:"status,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"conditions" json:"conditions,omitempty"` - Phase *string `tfsdk:"phase" json:"phase,omitempty"` - ResizeStatus *string `tfsdk:"resize_status" json:"resizeStatus,omitempty"` + CurrentVolumeAttributesClassName *string `tfsdk:"current_volume_attributes_class_name" json:"currentVolumeAttributesClassName,omitempty"` + ModifyVolumeStatus *struct { + Status *string `tfsdk:"status" json:"status,omitempty"` + TargetVolumeAttributesClassName *string `tfsdk:"target_volume_attributes_class_name" json:"targetVolumeAttributesClassName,omitempty"` + } `tfsdk:"modify_volume_status" json:"modifyVolumeStatus,omitempty"` + Phase *string `tfsdk:"phase" json:"phase,omitempty"` } `tfsdk:"status" json:"status,omitempty"` } `tfsdk:"volume_claim_template" json:"volumeClaimTemplate,omitempty"` } `tfsdk:"storage" json:"storage,omitempty"` @@ -362,13 +398,16 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` + UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"vmselect" json:"vmselect,omitempty"` @@ -392,9 +431,6 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -406,15 +442,17 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` Status *struct { - AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` - AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` - Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` - Conditions *[]struct { + AccessModes *[]string `tfsdk:"access_modes" json:"accessModes,omitempty"` + AllocatedResourceStatuses *map[string]string `tfsdk:"allocated_resource_statuses" json:"allocatedResourceStatuses,omitempty"` + AllocatedResources *map[string]string `tfsdk:"allocated_resources" json:"allocatedResources,omitempty"` + Capacity *map[string]string `tfsdk:"capacity" json:"capacity,omitempty"` + Conditions *[]struct { LastProbeTime *string `tfsdk:"last_probe_time" json:"lastProbeTime,omitempty"` LastTransitionTime *string `tfsdk:"last_transition_time" json:"lastTransitionTime,omitempty"` Message *string `tfsdk:"message" json:"message,omitempty"` @@ -422,13 +460,18 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Status *string `tfsdk:"status" json:"status,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"conditions" json:"conditions,omitempty"` - Phase *string `tfsdk:"phase" json:"phase,omitempty"` - ResizeStatus *string `tfsdk:"resize_status" json:"resizeStatus,omitempty"` + CurrentVolumeAttributesClassName *string `tfsdk:"current_volume_attributes_class_name" json:"currentVolumeAttributesClassName,omitempty"` + ModifyVolumeStatus *struct { + Status *string `tfsdk:"status" json:"status,omitempty"` + TargetVolumeAttributesClassName *string `tfsdk:"target_volume_attributes_class_name" json:"targetVolumeAttributesClassName,omitempty"` + } `tfsdk:"modify_volume_status" json:"modifyVolumeStatus,omitempty"` + Phase *string `tfsdk:"phase" json:"phase,omitempty"` } `tfsdk:"status" json:"status,omitempty"` } `tfsdk:"claim_templates" json:"claimTemplates,omitempty"` - ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` - Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` - DnsConfig *struct { + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -439,12 +482,23 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { DnsPolicy *string `tfsdk:"dns_policy" json:"dnsPolicy,omitempty"` ExtraArgs *map[string]string `tfsdk:"extra_args" json:"extraArgs,omitempty"` ExtraEnvs *[]map[string]string `tfsdk:"extra_envs" json:"extraEnvs,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Image *struct { + HostAliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Image *struct { PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` Repository *string `tfsdk:"repository" json:"repository,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` } `tfsdk:"image" json:"image,omitempty"` + ImagePullSecrets *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + } `tfsdk:"image_pull_secrets" json:"imagePullSecrets,omitempty"` InitContainers *[]map[string]string `tfsdk:"init_containers" json:"initContainers,omitempty"` LivenessProbe *map[string]string `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` LogFormat *string `tfsdk:"log_format" json:"logFormat,omitempty"` @@ -453,6 +507,7 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { MaintenanceSelectNodeIDs *[]string `tfsdk:"maintenance_select_node_i_ds" json:"maintenanceSelectNodeIDs,omitempty"` MinReadySeconds *int64 `tfsdk:"min_ready_seconds" json:"minReadySeconds,omitempty"` NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` + Paused *bool `tfsdk:"paused" json:"paused,omitempty"` PodDisruptionBudget *struct { MaxUnavailable *string `tfsdk:"max_unavailable" json:"maxUnavailable,omitempty"` MinAvailable *string `tfsdk:"min_available" json:"minAvailable,omitempty"` @@ -512,6 +567,8 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` + UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` VmBackup *struct { AcceptEULA *bool `tfsdk:"accept_eula" json:"acceptEULA,omitempty"` Concurrency *int64 `tfsdk:"concurrency" json:"concurrency,omitempty"` @@ -576,23 +633,25 @@ type OperatorVictoriametricsComVmclusterV1Beta1ManifestData struct { SnapshotCreateURL *string `tfsdk:"snapshot_create_url" json:"snapshotCreateURL,omitempty"` SnapshotDeleteURL *string `tfsdk:"snapshot_delete_url" json:"snapshotDeleteURL,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` } `tfsdk:"vm_backup" json:"vmBackup,omitempty"` VmInsertPort *string `tfsdk:"vm_insert_port" json:"vmInsertPort,omitempty"` VmSelectPort *string `tfsdk:"vm_select_port" json:"vmSelectPort,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"vmstorage" json:"vmstorage,omitempty"` @@ -676,6 +735,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Description: "VMClusterSpec defines the desired state of VMCluster", MarkdownDescription: "VMClusterSpec defines the desired state of VMCluster", Attributes: map[string]schema.Attribute{ + "cluster_domain_name": schema.StringAttribute{ + Description: "ClusterDomainName defines domain name suffix for in-cluster dns addresses aka .cluster.local used by vminsert and vmselect to build vmstorage address", + MarkdownDescription: "ClusterDomainName defines domain name suffix for in-cluster dns addresses aka .cluster.local used by vminsert and vmselect to build vmstorage address", + Required: false, + Optional: true, + Computed: false, + }, + "cluster_version": schema.StringAttribute{ Description: "ClusterVersion defines default images tag for all components. it can be overwritten with component specific image.tag value.", MarkdownDescription: "ClusterVersion defines default images tag for all components. it can be overwritten with component specific image.tag value.", @@ -690,8 +757,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -704,12 +771,12 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "license": schema.SingleNestedAttribute{ - Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", - MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", + Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", + MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", - MarkdownDescription: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", + Description: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", + MarkdownDescription: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", Required: false, Optional: true, Computed: false, @@ -728,8 +795,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -770,8 +837,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "retention_period": schema.StringAttribute{ - Description: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured retention period https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#retention", - MarkdownDescription: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured retention period https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#retention", + Description: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured [retention period](https://docs.victoriametrics.com/Single-server-VictoriaMetrics/#retention)", + MarkdownDescription: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured [retention period](https://docs.victoriametrics.com/Single-server-VictoriaMetrics/#retention)", Required: true, Optional: false, Computed: false, @@ -807,16 +874,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "cluster_native_listen_port": schema.StringAttribute{ - Description: "ClusterNativePort for multi-level cluster setup. More details: https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#multi-level-cluster-setup", - MarkdownDescription: "ClusterNativePort for multi-level cluster setup. More details: https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#multi-level-cluster-setup", + Description: "ClusterNativePort for multi-level cluster setup. More [details](https://docs.victoriametrics.com/Cluster-VictoriaMetrics#multi-level-cluster-setup)", + MarkdownDescription: "ClusterNativePort for multi-level cluster setup. More [details](https://docs.victoriametrics.com/Cluster-VictoriaMetrics#multi-level-cluster-setup)", Required: false, Optional: true, Computed: false, }, "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMInsert object, which shall be mounted into the VMInsert Pods. The ConfigMaps are mounted into /etc/vm/configs/.", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMInsert object, which shall be mounted into the VMInsert Pods. The ConfigMaps are mounted into /etc/vm/configs/.", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -832,6 +899,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "dns_config": schema.SingleNestedAttribute{ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", @@ -895,8 +970,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "extra_args": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, @@ -904,14 +979,42 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMInsert pod", - MarkdownDescription: "ExtraEnvs that will be added to VMInsert pod", + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + MarkdownDescription: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "host_network": schema.BoolAttribute{ Description: "HostNetwork controls whether the pod may use the node network namespace", MarkdownDescription: "HostNetwork controls whether the pod may use the node network namespace", @@ -920,6 +1023,34 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "hpa": schema.MapAttribute{ Description: "HPA defines kubernetes PodAutoScaling configuration version 2.", MarkdownDescription: "HPA defines kubernetes PodAutoScaling configuration version 2.", @@ -930,8 +1061,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMInsert", - MarkdownDescription: "Image - docker image settings for VMInsert", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -962,9 +1093,28 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + MarkdownDescription: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMInsert configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMInsert configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -1044,8 +1194,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "min_ready_seconds": schema.Int64Attribute{ - Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", - MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", Required: false, Optional: true, Computed: false, @@ -1060,6 +1210,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "paused": schema.BoolAttribute{ + Description: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + MarkdownDescription: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + Required: false, + Optional: true, + Computed: false, + }, + "pod_disruption_budget": schema.SingleNestedAttribute{ Description: "PodDisruptionBudget created by operator", MarkdownDescription: "PodDisruptionBudget created by operator", @@ -1130,16 +1288,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "port": schema.StringAttribute{ - Description: "Port listen port", - MarkdownDescription: "Port listen port", + Description: "Port listen address", + MarkdownDescription: "Port listen address", Required: false, Optional: true, Computed: false, }, "priority_class_name": schema.StringAttribute{ - Description: "Priority class assigned to the Pods", - MarkdownDescription: "Priority class assigned to the Pods", + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", Required: false, Optional: true, Computed: false, @@ -1174,16 +1332,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount is the expected size of the VMInsert cluster. The controller will eventually make the size of the running cluster equal to the expected size.", - MarkdownDescription: "ReplicaCount is the expected size of the VMInsert cluster. The controller will eventually make the size of the running cluster equal to the expected size.", - Required: true, - Optional: false, + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", + Required: false, + Optional: true, Computed: false, }, "resources": schema.SingleNestedAttribute{ - Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", Attributes: map[string]schema.Attribute{ "claims": schema.ListNestedAttribute{ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", @@ -1228,8 +1386,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -1277,8 +1435,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the VMInsert object, which shall be mounted into the VMInsert Pods. The Secrets are mounted into /etc/vm/secrets/.", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the VMInsert object, which shall be mounted into the VMInsert Pods. The Secrets are mounted into /etc/vm/secrets/.", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -1452,9 +1610,25 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + + "use_strict_security": schema.BoolAttribute{ + Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMInsert container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMInsert container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -1466,8 +1640,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -1489,6 +1663,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -1512,8 +1694,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -1667,25 +1849,6 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -1771,6 +1934,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -1805,9 +1976,18 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "allocated_resource_statuses": schema.MapAttribute{ + Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "allocated_resources": schema.MapAttribute{ - Description: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", ElementType: types.StringType, Required: false, Optional: true, @@ -1824,8 +2004,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "conditions": schema.ListNestedAttribute{ - Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "last_probe_time": schema.StringAttribute{ @@ -1859,8 +2039,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "reason": schema.StringAttribute{ - Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", - MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", + Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", + MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", Required: false, Optional: true, Computed: false, @@ -1888,17 +2068,42 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, - "phase": schema.StringAttribute{ - Description: "phase represents the current phase of PersistentVolumeClaim.", - MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", + "current_volume_attributes_class_name": schema.StringAttribute{ + Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", Required: false, Optional: true, Computed: false, }, - "resize_status": schema.StringAttribute{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + "modify_volume_status": schema.SingleNestedAttribute{ + Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + Attributes: map[string]schema.Attribute{ + "status": schema.StringAttribute{ + Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + MarkdownDescription: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + Required: true, + Optional: false, + Computed: false, + }, + + "target_volume_attributes_class_name": schema.StringAttribute{ + Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + MarkdownDescription: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "phase": schema.StringAttribute{ + Description: "phase represents the current phase of PersistentVolumeClaim.", + MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", Required: false, Optional: true, Computed: false, @@ -1916,16 +2121,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "cluster_native_listen_port": schema.StringAttribute{ - Description: "ClusterNativePort for multi-level cluster setup. More details: https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#multi-level-cluster-setup", - MarkdownDescription: "ClusterNativePort for multi-level cluster setup. More details: https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#multi-level-cluster-setup", + Description: "ClusterNativePort for multi-level cluster setup. More [details](https://docs.victoriametrics.com/Cluster-VictoriaMetrics#multi-level-cluster-setup)", + MarkdownDescription: "ClusterNativePort for multi-level cluster setup. More [details](https://docs.victoriametrics.com/Cluster-VictoriaMetrics#multi-level-cluster-setup)", Required: false, Optional: true, Computed: false, }, "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMSelect object, which shall be mounted into the VMSelect Pods. The ConfigMaps are mounted into /etc/vm/configs/.", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMSelect object, which shall be mounted into the VMSelect Pods. The ConfigMaps are mounted into /etc/vm/configs/.", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -1941,6 +2146,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "dns_config": schema.SingleNestedAttribute{ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", @@ -2004,8 +2217,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "extra_args": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, @@ -2013,14 +2226,42 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMSelect pod", - MarkdownDescription: "ExtraEnvs that will be added to VMSelect pod", + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + MarkdownDescription: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "host_network": schema.BoolAttribute{ Description: "HostNetwork controls whether the pod may use the node network namespace", MarkdownDescription: "HostNetwork controls whether the pod may use the node network namespace", @@ -2029,6 +2270,34 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "hpa": schema.MapAttribute{ Description: "Configures horizontal pod autoscaling. Note, enabling this option disables vmselect to vmselect communication. In most cases it's not an issue.", MarkdownDescription: "Configures horizontal pod autoscaling. Note, enabling this option disables vmselect to vmselect communication. In most cases it's not an issue.", @@ -2039,8 +2308,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMSelect", - MarkdownDescription: "Image - docker image settings for VMSelect", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -2071,9 +2340,28 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + MarkdownDescription: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMSelect configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMSelect configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -2112,8 +2400,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "min_ready_seconds": schema.Int64Attribute{ - Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", - MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", Required: false, Optional: true, Computed: false, @@ -2128,6 +2416,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "paused": schema.BoolAttribute{ + Description: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + MarkdownDescription: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + Required: false, + Optional: true, + Computed: false, + }, + "persistent_volume": schema.SingleNestedAttribute{ Description: "Storage - add persistent volume for cacheMountPath its useful for persistent cache use storage instead of persistentVolume.", MarkdownDescription: "Storage - add persistent volume for cacheMountPath its useful for persistent cache use storage instead of persistentVolume.", @@ -2249,16 +2545,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "port": schema.StringAttribute{ - Description: "Port listen port", - MarkdownDescription: "Port listen port", + Description: "Port listen address", + MarkdownDescription: "Port listen address", Required: false, Optional: true, Computed: false, }, "priority_class_name": schema.StringAttribute{ - Description: "Priority class assigned to the Pods", - MarkdownDescription: "Priority class assigned to the Pods", + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", Required: false, Optional: true, Computed: false, @@ -2293,16 +2589,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount is the expected size of the VMSelect cluster. The controller will eventually make the size of the running cluster equal to the expected size.", - MarkdownDescription: "ReplicaCount is the expected size of the VMSelect cluster. The controller will eventually make the size of the running cluster equal to the expected size.", - Required: true, - Optional: false, + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", + Required: false, + Optional: true, Computed: false, }, "resources": schema.SingleNestedAttribute{ - Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", Attributes: map[string]schema.Attribute{ "claims": schema.ListNestedAttribute{ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", @@ -2347,8 +2643,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -2379,8 +2675,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the VMSelect object, which shall be mounted into the VMSelect Pods. The Secrets are mounted into /etc/vm/secrets/.", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the VMSelect object, which shall be mounted into the VMSelect Pods. The Secrets are mounted into /etc/vm/secrets/.", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -2658,25 +2954,6 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -2762,6 +3039,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -2796,9 +3081,18 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "allocated_resource_statuses": schema.MapAttribute{ + Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "allocated_resources": schema.MapAttribute{ - Description: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", ElementType: types.StringType, Required: false, Optional: true, @@ -2815,8 +3109,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "conditions": schema.ListNestedAttribute{ - Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "last_probe_time": schema.StringAttribute{ @@ -2850,8 +3144,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "reason": schema.StringAttribute{ - Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", - MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", + Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", + MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", Required: false, Optional: true, Computed: false, @@ -2879,17 +3173,42 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, - "phase": schema.StringAttribute{ - Description: "phase represents the current phase of PersistentVolumeClaim.", - MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", + "current_volume_attributes_class_name": schema.StringAttribute{ + Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", Required: false, Optional: true, Computed: false, }, - "resize_status": schema.StringAttribute{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + "modify_volume_status": schema.SingleNestedAttribute{ + Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + Attributes: map[string]schema.Attribute{ + "status": schema.StringAttribute{ + Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + MarkdownDescription: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + Required: true, + Optional: false, + Computed: false, + }, + + "target_volume_attributes_class_name": schema.StringAttribute{ + Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + MarkdownDescription: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "phase": schema.StringAttribute{ + Description: "phase represents the current phase of PersistentVolumeClaim.", + MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", Required: false, Optional: true, Computed: false, @@ -2978,9 +3297,25 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + + "use_strict_security": schema.BoolAttribute{ + Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMSelect container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMSelect container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -2992,8 +3327,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -3015,6 +3350,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -3038,8 +3381,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -3185,25 +3528,6 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -3289,6 +3613,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -3323,9 +3655,18 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "allocated_resource_statuses": schema.MapAttribute{ + Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'ControllerResizeFailed' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizePending' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeInProgress' - pvc.status.allocatedResourceStatus['storage'] = 'NodeResizeFailed' When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "allocated_resources": schema.MapAttribute{ - Description: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + MarkdownDescription: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as 'example.com/my-custom-resource' Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", ElementType: types.StringType, Required: false, Optional: true, @@ -3342,8 +3683,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "conditions": schema.ListNestedAttribute{ - Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", + MarkdownDescription: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "last_probe_time": schema.StringAttribute{ @@ -3377,8 +3718,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "reason": schema.StringAttribute{ - Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", - MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'ResizeStarted' that means the underlying persistent volume is being resized.", + Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", + MarkdownDescription: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports 'Resizing' that means the underlying persistent volume is being resized.", Required: false, Optional: true, Computed: false, @@ -3406,17 +3747,42 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, - "phase": schema.StringAttribute{ - Description: "phase represents the current phase of PersistentVolumeClaim.", - MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", + "current_volume_attributes_class_name": schema.StringAttribute{ + Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature.", Required: false, Optional: true, Computed: false, }, - "resize_status": schema.StringAttribute{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", - MarkdownDescription: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + "modify_volume_status": schema.SingleNestedAttribute{ + Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + MarkdownDescription: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is an alpha field and requires enabling VolumeAttributesClass feature.", + Attributes: map[string]schema.Attribute{ + "status": schema.StringAttribute{ + Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + MarkdownDescription: "status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", + Required: true, + Optional: false, + Computed: false, + }, + + "target_volume_attributes_class_name": schema.StringAttribute{ + Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + MarkdownDescription: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "phase": schema.StringAttribute{ + Description: "phase represents the current phase of PersistentVolumeClaim.", + MarkdownDescription: "phase represents the current phase of PersistentVolumeClaim.", Required: false, Optional: true, Computed: false, @@ -3434,8 +3800,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMStorage object, which shall be mounted into the VMStorage Pods. The ConfigMaps are mounted into /etc/vm/configs/.", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMStorage object, which shall be mounted into the VMStorage Pods. The ConfigMaps are mounted into /etc/vm/configs/.", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -3451,6 +3817,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "dns_config": schema.SingleNestedAttribute{ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", @@ -3514,8 +3888,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "extra_args": schema.MapAttribute{ - Description: "", - MarkdownDescription: "", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, @@ -3523,14 +3897,42 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMStorage pod", - MarkdownDescription: "ExtraEnvs that will be added to VMStorage pod", + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + MarkdownDescription: "HostAliases provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "host_network": schema.BoolAttribute{ Description: "HostNetwork controls whether the pod may use the node network namespace", MarkdownDescription: "HostNetwork controls whether the pod may use the node network namespace", @@ -3539,9 +3941,37 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMStorage", - MarkdownDescription: "Image - docker image settings for VMStorage", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -3572,9 +4002,28 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "image_pull_secrets": schema.ListNestedAttribute{ + Description: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + MarkdownDescription: "ImagePullSecrets An optional list of references to secrets in the same namespace to use for pulling images from registries see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMStorage configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the VMStorage configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -3631,8 +4080,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "min_ready_seconds": schema.Int64Attribute{ - Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", - MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state", + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", Required: false, Optional: true, Computed: false, @@ -3647,6 +4096,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "paused": schema.BoolAttribute{ + Description: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + MarkdownDescription: "Paused If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.", + Required: false, + Optional: true, + Computed: false, + }, + "pod_disruption_budget": schema.SingleNestedAttribute{ Description: "PodDisruptionBudget created by operator", MarkdownDescription: "PodDisruptionBudget created by operator", @@ -3717,16 +4174,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "port": schema.StringAttribute{ - Description: "Port for health check connetions", - MarkdownDescription: "Port for health check connetions", + Description: "Port listen address", + MarkdownDescription: "Port listen address", Required: false, Optional: true, Computed: false, }, "priority_class_name": schema.StringAttribute{ - Description: "Priority class assigned to the Pods", - MarkdownDescription: "Priority class assigned to the Pods", + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", Required: false, Optional: true, Computed: false, @@ -3761,16 +4218,16 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount is the expected size of the VMStorage cluster. The controller will eventually make the size of the running cluster equal to the expected size.", - MarkdownDescription: "ReplicaCount is the expected size of the VMStorage cluster. The controller will eventually make the size of the running cluster equal to the expected size.", - Required: true, - Optional: false, + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", + Required: false, + Optional: true, Computed: false, }, "resources": schema.SingleNestedAttribute{ - Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", - MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + Description: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", + MarkdownDescription: "Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ if not defined default resources from operator config will be used", Attributes: map[string]schema.Attribute{ "claims": schema.ListNestedAttribute{ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", @@ -3815,8 +4272,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -3847,8 +4304,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the VMStorage object, which shall be mounted into the VMStorage Pods. The Secrets are mounted into /etc/vm/secrets/.", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the VMStorage object, which shall be mounted into the VMStorage Pods. The Secrets are mounted into /etc/vm/secrets/.", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -4070,6 +4527,22 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + + "use_strict_security": schema.BoolAttribute{ + Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", + Required: false, + Optional: true, + Computed: false, + }, + "vm_backup": schema.SingleNestedAttribute{ Description: "VMBackup configuration for backup", MarkdownDescription: "VMBackup configuration for backup", @@ -4103,8 +4576,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4226,8 +4699,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4317,8 +4790,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -4458,8 +4931,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "restore": schema.SingleNestedAttribute{ - Description: "Restore Allows to enable restore options for pod Read more: https://docs.victoriametrics.com/vmbackupmanager.html#restore-commands", - MarkdownDescription: "Restore Allows to enable restore options for pod Read more: https://docs.victoriametrics.com/vmbackupmanager.html#restore-commands", + Description: "Restore Allows to enable restore options for pod Read [more](https://docs.victoriametrics.com/vmbackupmanager#restore-commands)", + MarkdownDescription: "Restore Allows to enable restore options for pod Read [more](https://docs.victoriametrics.com/vmbackupmanager#restore-commands)", Attributes: map[string]schema.Attribute{ "on_start": schema.SingleNestedAttribute{ Description: "OnStart defines configuration for restore on pod start", @@ -4513,8 +4986,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -4536,6 +5009,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -4580,8 +5061,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMStorage container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMStorage container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -4593,8 +5074,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -4616,6 +5097,14 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -4639,8 +5128,8 @@ func (r *OperatorVictoriametricsComVmclusterV1Beta1Manifest) Schema(_ context.Co }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest.go index f7336e2b6..612975aad 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest.go @@ -76,6 +76,7 @@ type OperatorVictoriametricsComVmnodeScrapeV1Beta1ManifestData struct { HonorTimestamps *bool `tfsdk:"honor_timestamps" json:"honorTimestamps,omitempty"` Interval *string `tfsdk:"interval" json:"interval,omitempty"` JobLabel *string `tfsdk:"job_label" json:"jobLabel,omitempty"` + Max_scrape_size *string `tfsdk:"max_scrape_size" json:"max_scrape_size,omitempty"` MetricRelabelConfigs *[]struct { Action *string `tfsdk:"action" json:"action,omitempty"` If *map[string]string `tfsdk:"if" json:"if,omitempty"` @@ -178,12 +179,11 @@ type OperatorVictoriametricsComVmnodeScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` Vm_scrape_params *struct { - Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` - Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Metric_relabel_debug *bool `tfsdk:"metric_relabel_debug" json:"metric_relabel_debug,omitempty"` - No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` - Proxy_client_config *struct { + Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` + Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` + Proxy_client_config *struct { Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -240,7 +240,6 @@ type OperatorVictoriametricsComVmnodeScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tls_config,omitempty"` } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` - Relabel_debug *bool `tfsdk:"relabel_debug" json:"relabel_debug,omitempty"` Scrape_align_interval *string `tfsdk:"scrape_align_interval" json:"scrape_align_interval,omitempty"` Scrape_offset *string `tfsdk:"scrape_offset" json:"scrape_offset,omitempty"` Stream_parse *bool `tfsdk:"stream_parse" json:"stream_parse,omitempty"` @@ -342,8 +341,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -384,12 +383,12 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "basic_auth": schema.SingleNestedAttribute{ - Description: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", - MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -400,8 +399,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -421,16 +420,16 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -441,8 +440,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -475,8 +474,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "bearer_token_secret": schema.SingleNestedAttribute{ - Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be accessible by the victoria-metrics operator.", - MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be accessible by the victoria-metrics operator.", + Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", + MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -487,8 +486,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -547,9 +546,17 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context Computed: false, }, + "max_scrape_size": schema.StringAttribute{ + Description: "MaxScrapeSize defines a maximum size of scraped data for a job", + MarkdownDescription: "MaxScrapeSize defines a maximum size of scraped data for a job", + Required: false, + Optional: true, + Computed: false, + }, + "metric_relabel_configs": schema.ListNestedAttribute{ - Description: "MetricRelabelConfigs to apply to samples before ingestion.", - MarkdownDescription: "MetricRelabelConfigs to apply to samples before ingestion.", + Description: "MetricRelabelConfigs to apply to samples after scrapping.", + MarkdownDescription: "MetricRelabelConfigs to apply to samples after scrapping.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -663,8 +670,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -696,8 +703,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -734,8 +741,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -830,8 +837,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "relabel_configs": schema.ListNestedAttribute{ - Description: "RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", - MarkdownDescription: "RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", + Description: "RelabelConfigs to apply to samples during service discovery.", + MarkdownDescription: "RelabelConfigs to apply to samples during service discovery.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -1031,8 +1038,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "tls_config": schema.SingleNestedAttribute{ - Description: "TLSConfig specifies TLSConfig configuration parameters.", - MarkdownDescription: "TLSConfig specifies TLSConfig configuration parameters.", + Description: "TLSConfig configuration to use when scraping the endpoint", + MarkdownDescription: "TLSConfig configuration to use when scraping the endpoint", Attributes: map[string]schema.Attribute{ "ca": schema.SingleNestedAttribute{ Description: "Stuct containing the CA cert to use for the targets.", @@ -1051,8 +1058,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1084,8 +1091,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1134,8 +1141,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1167,8 +1174,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1229,8 +1236,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1267,16 +1274,16 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context MarkdownDescription: "VMScrapeParams defines VictoriaMetrics specific scrape parameters", Attributes: map[string]schema.Attribute{ "disable_compression": schema.BoolAttribute{ - Description: "", - MarkdownDescription: "", + Description: "DisableCompression", + MarkdownDescription: "DisableCompression", Required: false, Optional: true, Computed: false, }, "disable_keep_alive": schema.BoolAttribute{ - Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", - MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", + Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", + MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", Required: false, Optional: true, Computed: false, @@ -1291,14 +1298,6 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context Computed: false, }, - "metric_relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "no_stale_markers": schema.BoolAttribute{ Description: "", MarkdownDescription: "", @@ -1308,16 +1307,16 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "proxy_client_config": schema.SingleNestedAttribute{ - Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", - MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", + Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", Attributes: map[string]schema.Attribute{ "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1328,8 +1327,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1349,16 +1348,16 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1369,8 +1368,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1407,8 +1406,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1456,8 +1455,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1489,8 +1488,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1539,8 +1538,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1572,8 +1571,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1634,8 +1633,8 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1672,14 +1671,6 @@ func (r *OperatorVictoriametricsComVmnodeScrapeV1Beta1Manifest) Schema(_ context Computed: false, }, - "relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "scrape_align_interval": schema.StringAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest.go index e28272de9..88d9d47eb 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest.go @@ -88,6 +88,7 @@ type OperatorVictoriametricsComVmpodScrapeV1Beta1ManifestData struct { HonorLabels *bool `tfsdk:"honor_labels" json:"honorLabels,omitempty"` HonorTimestamps *bool `tfsdk:"honor_timestamps" json:"honorTimestamps,omitempty"` Interval *string `tfsdk:"interval" json:"interval,omitempty"` + Max_scrape_size *string `tfsdk:"max_scrape_size" json:"max_scrape_size,omitempty"` MetricRelabelConfigs *[]struct { Action *string `tfsdk:"action" json:"action,omitempty"` If *map[string]string `tfsdk:"if" json:"if,omitempty"` @@ -182,12 +183,11 @@ type OperatorVictoriametricsComVmpodScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` Vm_scrape_params *struct { - Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` - Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Metric_relabel_debug *bool `tfsdk:"metric_relabel_debug" json:"metric_relabel_debug,omitempty"` - No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` - Proxy_client_config *struct { + Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` + Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` + Proxy_client_config *struct { Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -244,7 +244,6 @@ type OperatorVictoriametricsComVmpodScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tls_config,omitempty"` } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` - Relabel_debug *bool `tfsdk:"relabel_debug" json:"relabel_debug,omitempty"` Scrape_align_interval *string `tfsdk:"scrape_align_interval" json:"scrape_align_interval,omitempty"` Scrape_offset *string `tfsdk:"scrape_offset" json:"scrape_offset,omitempty"` Stream_parse *bool `tfsdk:"stream_parse" json:"stream_parse,omitempty"` @@ -431,8 +430,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -473,12 +472,12 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "basic_auth": schema.SingleNestedAttribute{ - Description: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", - MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -489,8 +488,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -510,16 +509,16 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -530,8 +529,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -564,8 +563,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "bearer_token_secret": schema.SingleNestedAttribute{ - Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", - MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", + Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", + MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -576,8 +575,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -636,9 +635,17 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. Computed: false, }, + "max_scrape_size": schema.StringAttribute{ + Description: "MaxScrapeSize defines a maximum size of scraped data for a job", + MarkdownDescription: "MaxScrapeSize defines a maximum size of scraped data for a job", + Required: false, + Optional: true, + Computed: false, + }, + "metric_relabel_configs": schema.ListNestedAttribute{ - Description: "MetricRelabelConfigs to apply to samples before ingestion.", - MarkdownDescription: "MetricRelabelConfigs to apply to samples before ingestion.", + Description: "MetricRelabelConfigs to apply to samples after scrapping.", + MarkdownDescription: "MetricRelabelConfigs to apply to samples after scrapping.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -752,8 +759,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -785,8 +792,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -823,8 +830,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -903,8 +910,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "port": schema.StringAttribute{ - Description: "Name of the pod port this endpoint refers to. Mutually exclusive with targetPort.", - MarkdownDescription: "Name of the pod port this endpoint refers to. Mutually exclusive with targetPort.", + Description: "Name of the port exposed at Pod.", + MarkdownDescription: "Name of the port exposed at Pod.", Required: false, Optional: true, Computed: false, @@ -919,8 +926,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "relabel_configs": schema.ListNestedAttribute{ - Description: "RelabelConfigs to apply to samples before ingestion. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", - MarkdownDescription: "RelabelConfigs to apply to samples before ingestion. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", + Description: "RelabelConfigs to apply to samples during service discovery.", + MarkdownDescription: "RelabelConfigs to apply to samples during service discovery.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -1014,8 +1021,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "sample_limit": schema.Int64Attribute{ - Description: "SampleLimit defines per-podEndpoint limit on number of scraped samples that will be accepted.", - MarkdownDescription: "SampleLimit defines per-podEndpoint limit on number of scraped samples that will be accepted.", + Description: "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.", + MarkdownDescription: "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.", Required: false, Optional: true, Computed: false, @@ -1057,8 +1064,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "target_port": schema.StringAttribute{ - Description: "Deprecated: Use 'port' instead.", - MarkdownDescription: "Deprecated: Use 'port' instead.", + Description: "TargetPort Name or number of the pod port this endpoint refers to. Mutually exclusive with port.", + MarkdownDescription: "TargetPort Name or number of the pod port this endpoint refers to. Mutually exclusive with port.", Required: false, Optional: true, Computed: false, @@ -1085,8 +1092,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1118,8 +1125,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1168,8 +1175,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1201,8 +1208,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1263,8 +1270,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1301,16 +1308,16 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. MarkdownDescription: "VMScrapeParams defines VictoriaMetrics specific scrape parameters", Attributes: map[string]schema.Attribute{ "disable_compression": schema.BoolAttribute{ - Description: "", - MarkdownDescription: "", + Description: "DisableCompression", + MarkdownDescription: "DisableCompression", Required: false, Optional: true, Computed: false, }, "disable_keep_alive": schema.BoolAttribute{ - Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", - MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", + Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", + MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", Required: false, Optional: true, Computed: false, @@ -1325,14 +1332,6 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. Computed: false, }, - "metric_relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "no_stale_markers": schema.BoolAttribute{ Description: "", MarkdownDescription: "", @@ -1342,16 +1341,16 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "proxy_client_config": schema.SingleNestedAttribute{ - Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", - MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", + Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", Attributes: map[string]schema.Attribute{ "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1362,8 +1361,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1383,16 +1382,16 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1403,8 +1402,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1441,8 +1440,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1490,8 +1489,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1523,8 +1522,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1573,8 +1572,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1606,8 +1605,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1668,8 +1667,8 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1706,14 +1705,6 @@ func (r *OperatorVictoriametricsComVmpodScrapeV1Beta1Manifest) Schema(_ context. Computed: false, }, - "relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "scrape_align_interval": schema.StringAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_probe_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_probe_v1beta1_manifest.go index 90ed1226d..6604b2a19 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_probe_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_probe_v1beta1_manifest.go @@ -71,11 +71,28 @@ type OperatorVictoriametricsComVmprobeV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"bearer_token_secret" json:"bearerTokenSecret,omitempty"` - Follow_redirects *bool `tfsdk:"follow_redirects" json:"follow_redirects,omitempty"` - Interval *string `tfsdk:"interval" json:"interval,omitempty"` - JobName *string `tfsdk:"job_name" json:"jobName,omitempty"` - Module *string `tfsdk:"module" json:"module,omitempty"` - Oauth2 *struct { + Follow_redirects *bool `tfsdk:"follow_redirects" json:"follow_redirects,omitempty"` + HonorLabels *bool `tfsdk:"honor_labels" json:"honorLabels,omitempty"` + HonorTimestamps *bool `tfsdk:"honor_timestamps" json:"honorTimestamps,omitempty"` + Interval *string `tfsdk:"interval" json:"interval,omitempty"` + JobName *string `tfsdk:"job_name" json:"jobName,omitempty"` + Max_scrape_size *string `tfsdk:"max_scrape_size" json:"max_scrape_size,omitempty"` + MetricRelabelConfigs *[]struct { + Action *string `tfsdk:"action" json:"action,omitempty"` + If *map[string]string `tfsdk:"if" json:"if,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Match *string `tfsdk:"match" json:"match,omitempty"` + Modulus *int64 `tfsdk:"modulus" json:"modulus,omitempty"` + Regex *map[string]string `tfsdk:"regex" json:"regex,omitempty"` + Replacement *string `tfsdk:"replacement" json:"replacement,omitempty"` + Separator *string `tfsdk:"separator" json:"separator,omitempty"` + SourceLabels *[]string `tfsdk:"source_labels" json:"sourceLabels,omitempty"` + Source_labels *[]string `tfsdk:"source_labels" json:"source_labels,omitempty"` + TargetLabel *string `tfsdk:"target_label" json:"targetLabel,omitempty"` + Target_label *string `tfsdk:"target_label" json:"target_label,omitempty"` + } `tfsdk:"metric_relabel_configs" json:"metricRelabelConfigs,omitempty"` + Module *string `tfsdk:"module" json:"module,omitempty"` + Oauth2 *struct { Client_id *struct { ConfigMap *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -99,8 +116,10 @@ type OperatorVictoriametricsComVmprobeV1Beta1ManifestData struct { Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` } `tfsdk:"oauth2" json:"oauth2,omitempty"` Params *map[string][]string `tfsdk:"params" json:"params,omitempty"` + Path *string `tfsdk:"path" json:"path,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` SampleLimit *int64 `tfsdk:"sample_limit" json:"sampleLimit,omitempty"` + Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` ScrapeTimeout *string `tfsdk:"scrape_timeout" json:"scrapeTimeout,omitempty"` Scrape_interval *string `tfsdk:"scrape_interval" json:"scrape_interval,omitempty"` SeriesLimit *int64 `tfsdk:"series_limit" json:"seriesLimit,omitempty"` @@ -190,12 +209,11 @@ type OperatorVictoriametricsComVmprobeV1Beta1ManifestData struct { Url *string `tfsdk:"url" json:"url,omitempty"` } `tfsdk:"vm_prober_spec" json:"vmProberSpec,omitempty"` Vm_scrape_params *struct { - Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` - Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Metric_relabel_debug *bool `tfsdk:"metric_relabel_debug" json:"metric_relabel_debug,omitempty"` - No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` - Proxy_client_config *struct { + Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` + Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` + Proxy_client_config *struct { Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -252,7 +270,6 @@ type OperatorVictoriametricsComVmprobeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tls_config,omitempty"` } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` - Relabel_debug *bool `tfsdk:"relabel_debug" json:"relabel_debug,omitempty"` Scrape_align_interval *string `tfsdk:"scrape_align_interval" json:"scrape_align_interval,omitempty"` Scrape_offset *string `tfsdk:"scrape_offset" json:"scrape_offset,omitempty"` Stream_parse *bool `tfsdk:"stream_parse" json:"stream_parse,omitempty"` @@ -354,8 +371,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -396,12 +413,12 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "basic_auth": schema.SingleNestedAttribute{ - Description: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", - MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -412,8 +429,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -433,16 +450,16 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -453,8 +470,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -487,8 +504,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "bearer_token_secret": schema.SingleNestedAttribute{ - Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", - MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", + Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", + MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -499,8 +516,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -527,9 +544,25 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "honor_labels": schema.BoolAttribute{ + Description: "HonorLabels chooses the metric's labels on collisions with target labels.", + MarkdownDescription: "HonorLabels chooses the metric's labels on collisions with target labels.", + Required: false, + Optional: true, + Computed: false, + }, + + "honor_timestamps": schema.BoolAttribute{ + Description: "HonorTimestamps controls whether vmagent respects the timestamps present in scraped data.", + MarkdownDescription: "HonorTimestamps controls whether vmagent respects the timestamps present in scraped data.", + Required: false, + Optional: true, + Computed: false, + }, + "interval": schema.StringAttribute{ - Description: "Interval at which targets are probed using the configured prober. If not specified Prometheus' global scrape interval is used.", - MarkdownDescription: "Interval at which targets are probed using the configured prober. If not specified Prometheus' global scrape interval is used.", + Description: "Interval at which metrics should be scraped", + MarkdownDescription: "Interval at which metrics should be scraped", Required: false, Optional: true, Computed: false, @@ -543,6 +576,126 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "max_scrape_size": schema.StringAttribute{ + Description: "MaxScrapeSize defines a maximum size of scraped data for a job", + MarkdownDescription: "MaxScrapeSize defines a maximum size of scraped data for a job", + Required: false, + Optional: true, + Computed: false, + }, + + "metric_relabel_configs": schema.ListNestedAttribute{ + Description: "MetricRelabelConfigs to apply to samples after scrapping.", + MarkdownDescription: "MetricRelabelConfigs to apply to samples after scrapping.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "action": schema.StringAttribute{ + Description: "Action to perform based on regex matching. Default is 'replace'", + MarkdownDescription: "Action to perform based on regex matching. Default is 'replace'", + Required: false, + Optional: true, + Computed: false, + }, + + "if": schema.MapAttribute{ + Description: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + MarkdownDescription: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels is used together with Match for 'action: graphite'", + MarkdownDescription: "Labels is used together with Match for 'action: graphite'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "match": schema.StringAttribute{ + Description: "Match is used together with Labels for 'action: graphite'", + MarkdownDescription: "Match is used together with Labels for 'action: graphite'", + Required: false, + Optional: true, + Computed: false, + }, + + "modulus": schema.Int64Attribute{ + Description: "Modulus to take of the hash of the source label values.", + MarkdownDescription: "Modulus to take of the hash of the source label values.", + Required: false, + Optional: true, + Computed: false, + }, + + "regex": schema.MapAttribute{ + Description: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + MarkdownDescription: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "replacement": schema.StringAttribute{ + Description: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + MarkdownDescription: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + Required: false, + Optional: true, + Computed: false, + }, + + "separator": schema.StringAttribute{ + Description: "Separator placed between concatenated source label values. default is ';'.", + MarkdownDescription: "Separator placed between concatenated source label values. default is ';'.", + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + MarkdownDescription: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + MarkdownDescription: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "module": schema.StringAttribute{ Description: "The module to use for probing specifying how to probe the target. Example module configuring in the blackbox exporter: https://github.com/prometheus/blackbox_exporter/blob/master/example.yml", MarkdownDescription: "The module to use for probing specifying how to probe the target. Example module configuring in the blackbox exporter: https://github.com/prometheus/blackbox_exporter/blob/master/example.yml", @@ -572,8 +725,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -605,8 +758,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -643,8 +796,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -714,6 +867,14 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "path": schema.StringAttribute{ + Description: "HTTP path to scrape for metrics.", + MarkdownDescription: "HTTP path to scrape for metrics.", + Required: false, + Optional: true, + Computed: false, + }, + "proxy_url": schema.StringAttribute{ Description: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", MarkdownDescription: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", @@ -730,9 +891,20 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, + "scheme": schema.StringAttribute{ + Description: "HTTP scheme to use for scraping.", + MarkdownDescription: "HTTP scheme to use for scraping.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("http", "https"), + }, + }, + "scrape_timeout": schema.StringAttribute{ - Description: "Timeout for scraping metrics from the Prometheus exporter.", - MarkdownDescription: "Timeout for scraping metrics from the Prometheus exporter.", + Description: "Timeout after which the scrape is ended", + MarkdownDescription: "Timeout after which the scrape is ended", Required: false, Optional: true, Computed: false, @@ -789,8 +961,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "relabeling_configs": schema.ListNestedAttribute{ - Description: "RelabelConfigs to apply to samples before ingestion. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", - MarkdownDescription: "RelabelConfigs to apply to samples before ingestion. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", + Description: "RelabelConfigs to apply to samples during service discovery.", + MarkdownDescription: "RelabelConfigs to apply to samples during service discovery.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -943,8 +1115,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "static_config": schema.SingleNestedAttribute{ - Description: "StaticConfig defines static targets which are considers for probing. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config.", - MarkdownDescription: "StaticConfig defines static targets which are considers for probing. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config.", + Description: "StaticConfig defines static targets which are considers for probing.", + MarkdownDescription: "StaticConfig defines static targets which are considers for probing.", Attributes: map[string]schema.Attribute{ "labels": schema.MapAttribute{ Description: "Labels assigned to all metrics scraped from the targets.", @@ -956,8 +1128,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "relabeling_configs": schema.ListNestedAttribute{ - Description: "More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", - MarkdownDescription: "More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", + Description: "RelabelConfigs to apply to samples during service discovery.", + MarkdownDescription: "RelabelConfigs to apply to samples during service discovery.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -1090,8 +1262,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1123,8 +1295,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1173,8 +1345,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1206,8 +1378,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1268,8 +1440,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1342,16 +1514,16 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont MarkdownDescription: "VMScrapeParams defines VictoriaMetrics specific scrape parameters", Attributes: map[string]schema.Attribute{ "disable_compression": schema.BoolAttribute{ - Description: "", - MarkdownDescription: "", + Description: "DisableCompression", + MarkdownDescription: "DisableCompression", Required: false, Optional: true, Computed: false, }, "disable_keep_alive": schema.BoolAttribute{ - Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", - MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", + Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", + MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", Required: false, Optional: true, Computed: false, @@ -1366,14 +1538,6 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "metric_relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "no_stale_markers": schema.BoolAttribute{ Description: "", MarkdownDescription: "", @@ -1383,16 +1547,16 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "proxy_client_config": schema.SingleNestedAttribute{ - Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", - MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", + Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", Attributes: map[string]schema.Attribute{ "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1403,8 +1567,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1424,16 +1588,16 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1444,8 +1608,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1482,8 +1646,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1531,8 +1695,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1564,8 +1728,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1614,8 +1778,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1647,8 +1811,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1709,8 +1873,8 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1747,14 +1911,6 @@ func (r *OperatorVictoriametricsComVmprobeV1Beta1Manifest) Schema(_ context.Cont Computed: false, }, - "relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "scrape_align_interval": schema.StringAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_rule_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_rule_v1beta1_manifest.go index 7c5dff1a6..e62219d3e 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_rule_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_rule_v1beta1_manifest.go @@ -45,6 +45,9 @@ type OperatorVictoriametricsComVmruleV1Beta1ManifestData struct { Spec *struct { Groups *[]struct { Concurrency *int64 `tfsdk:"concurrency" json:"concurrency,omitempty"` + Eval_alignment *bool `tfsdk:"eval_alignment" json:"eval_alignment,omitempty"` + Eval_delay *string `tfsdk:"eval_delay" json:"eval_delay,omitempty"` + Eval_offset *string `tfsdk:"eval_offset" json:"eval_offset,omitempty"` Extra_filter_labels *map[string]string `tfsdk:"extra_filter_labels" json:"extra_filter_labels,omitempty"` Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` Interval *string `tfsdk:"interval" json:"interval,omitempty"` @@ -160,9 +163,33 @@ func (r *OperatorVictoriametricsComVmruleV1Beta1Manifest) Schema(_ context.Conte Computed: false, }, + "eval_alignment": schema.BoolAttribute{ + Description: "Optional The evaluation timestamp will be aligned with group's interval, instead of using the actual timestamp that evaluation happens at. It is enabled by default to get more predictable results and to visually align with graphs plotted via Grafana or vmui.", + MarkdownDescription: "Optional The evaluation timestamp will be aligned with group's interval, instead of using the actual timestamp that evaluation happens at. It is enabled by default to get more predictable results and to visually align with graphs plotted via Grafana or vmui.", + Required: false, + Optional: true, + Computed: false, + }, + + "eval_delay": schema.StringAttribute{ + Description: "Optional Adjust the 'time' parameter of group evaluation requests to compensate intentional query delay from the datasource.", + MarkdownDescription: "Optional Adjust the 'time' parameter of group evaluation requests to compensate intentional query delay from the datasource.", + Required: false, + Optional: true, + Computed: false, + }, + + "eval_offset": schema.StringAttribute{ + Description: "Optional Group will be evaluated at the exact offset in the range of [0...interval].", + MarkdownDescription: "Optional Group will be evaluated at the exact offset in the range of [0...interval].", + Required: false, + Optional: true, + Computed: false, + }, + "extra_filter_labels": schema.MapAttribute{ - Description: "ExtraFilterLabels optional list of label filters applied to every rule's request withing a group. Is compatible only with VM datasource. See more details at https://docs.victoriametrics.com#prometheus-querying-api-enhancements Deprecated, use params instead", - MarkdownDescription: "ExtraFilterLabels optional list of label filters applied to every rule's request withing a group. Is compatible only with VM datasource. See more details at https://docs.victoriametrics.com#prometheus-querying-api-enhancements Deprecated, use params instead", + Description: "ExtraFilterLabels optional list of label filters applied to every rule's request within a group. Is compatible only with VM datasource. See more details [here](https://docs.victoriametrics.com/#prometheus-querying-api-enhancements) Deprecated, use params instead", + MarkdownDescription: "ExtraFilterLabels optional list of label filters applied to every rule's request within a group. Is compatible only with VM datasource. See more details [here](https://docs.victoriametrics.com/#prometheus-querying-api-enhancements) Deprecated, use params instead", ElementType: types.StringType, Required: false, Optional: true, @@ -315,8 +342,8 @@ func (r *OperatorVictoriametricsComVmruleV1Beta1Manifest) Schema(_ context.Conte }, "tenant": schema.StringAttribute{ - Description: "Tenant id for group, can be used only with enterprise version of vmalert See more details at https://docs.victoriametrics.com/vmalert.html#multitenancy", - MarkdownDescription: "Tenant id for group, can be used only with enterprise version of vmalert See more details at https://docs.victoriametrics.com/vmalert.html#multitenancy", + Description: "Tenant id for group, can be used only with enterprise version of vmalert. See more details [here](https://docs.victoriametrics.com/vmalert#multitenancy).", + MarkdownDescription: "Tenant id for group, can be used only with enterprise version of vmalert. See more details [here](https://docs.victoriametrics.com/vmalert#multitenancy).", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.go new file mode 100644 index 000000000..db4ad0799 --- /dev/null +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.go @@ -0,0 +1,6833 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package operator_victoriametrics_com_v1beta1 + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/metio/terraform-provider-k8s/internal/utilities" + "github.com/metio/terraform-provider-k8s/internal/validators" + "k8s.io/utils/pointer" + "regexp" + "sigs.k8s.io/yaml" +) + +var ( + _ datasource.DataSource = &OperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest{} +) + +func NewOperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest() datasource.DataSource { + return &OperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest{} +} + +type OperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest struct{} + +type OperatorVictoriametricsComVmscrapeConfigV1Beta1ManifestData struct { + YAML types.String `tfsdk:"yaml" json:"-"` + + ApiVersion *string `tfsdk:"-" json:"apiVersion"` + Kind *string `tfsdk:"-" json:"kind"` + + Metadata struct { + Name string `tfsdk:"name" json:"name"` + Namespace string `tfsdk:"namespace" json:"namespace"` + Labels map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Annotations map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` + } `tfsdk:"metadata" json:"metadata"` + + Spec *struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` + AzureSDConfigs *[]struct { + AuthenticationMethod *string `tfsdk:"authentication_method" json:"authenticationMethod,omitempty"` + ClientID *string `tfsdk:"client_id" json:"clientID,omitempty"` + ClientSecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"clientSecret,omitempty"` + Environment *string `tfsdk:"environment" json:"environment,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + ResourceGroup *string `tfsdk:"resource_group" json:"resourceGroup,omitempty"` + SubscriptionID *string `tfsdk:"subscription_id" json:"subscriptionID,omitempty"` + TenantID *string `tfsdk:"tenant_id" json:"tenantID,omitempty"` + } `tfsdk:"azure_sd_configs" json:"azureSDConfigs,omitempty"` + BasicAuth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basicAuth,omitempty"` + BearerTokenFile *string `tfsdk:"bearer_token_file" json:"bearerTokenFile,omitempty"` + BearerTokenSecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"bearer_token_secret" json:"bearerTokenSecret,omitempty"` + ConsulSDConfigs *[]struct { + AllowStale *bool `tfsdk:"allow_stale" json:"allowStale,omitempty"` + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` + BasicAuth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basicAuth,omitempty"` + Datacenter *string `tfsdk:"datacenter" json:"datacenter,omitempty"` + FollowRedirects *bool `tfsdk:"follow_redirects" json:"followRedirects,omitempty"` + Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` + NodeMeta *map[string]string `tfsdk:"node_meta" json:"nodeMeta,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` + Partition *string `tfsdk:"partition" json:"partition,omitempty"` + ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` + Proxy_client_config *struct { + Basic_auth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basic_auth,omitempty"` + Bearer_token *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"bearer_token" json:"bearer_token,omitempty"` + Bearer_token_file *string `tfsdk:"bearer_token_file" json:"bearer_token_file,omitempty"` + Tls_config *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tls_config,omitempty"` + } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` + Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` + Server *string `tfsdk:"server" json:"server,omitempty"` + Services *[]string `tfsdk:"services" json:"services,omitempty"` + TagSeparator *string `tfsdk:"tag_separator" json:"tagSeparator,omitempty"` + Tags *[]string `tfsdk:"tags" json:"tags,omitempty"` + TlsConfig *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` + TokenRef *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"token_ref" json:"tokenRef,omitempty"` + } `tfsdk:"consul_sd_configs" json:"consulSDConfigs,omitempty"` + DigitalOceanSDConfigs *[]struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` + FollowRedirects *bool `tfsdk:"follow_redirects" json:"followRedirects,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` + Proxy_client_config *struct { + Basic_auth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basic_auth,omitempty"` + Bearer_token *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"bearer_token" json:"bearer_token,omitempty"` + Bearer_token_file *string `tfsdk:"bearer_token_file" json:"bearer_token_file,omitempty"` + Tls_config *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tls_config,omitempty"` + } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` + TlsConfig *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` + } `tfsdk:"digital_ocean_sd_configs" json:"digitalOceanSDConfigs,omitempty"` + DnsSDConfigs *[]struct { + Names *[]string `tfsdk:"names" json:"names,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"dns_sd_configs" json:"dnsSDConfigs,omitempty"` + Ec2SDConfigs *[]struct { + AccessKey *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"access_key" json:"accessKey,omitempty"` + Filters *[]struct { + Name *string `tfsdk:"name" json:"name,omitempty"` + Values *[]string `tfsdk:"values" json:"values,omitempty"` + } `tfsdk:"filters" json:"filters,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + Region *string `tfsdk:"region" json:"region,omitempty"` + RoleARN *string `tfsdk:"role_arn" json:"roleARN,omitempty"` + SecretKey *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret_key" json:"secretKey,omitempty"` + } `tfsdk:"ec2_sd_configs" json:"ec2SDConfigs,omitempty"` + FileSDConfigs *[]struct { + Files *[]string `tfsdk:"files" json:"files,omitempty"` + } `tfsdk:"file_sd_configs" json:"fileSDConfigs,omitempty"` + Follow_redirects *bool `tfsdk:"follow_redirects" json:"follow_redirects,omitempty"` + GceSDConfigs *[]struct { + Filter *string `tfsdk:"filter" json:"filter,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + Project *string `tfsdk:"project" json:"project,omitempty"` + TagSeparator *string `tfsdk:"tag_separator" json:"tagSeparator,omitempty"` + Zone *string `tfsdk:"zone" json:"zone,omitempty"` + } `tfsdk:"gce_sd_configs" json:"gceSDConfigs,omitempty"` + HonorLabels *bool `tfsdk:"honor_labels" json:"honorLabels,omitempty"` + HonorTimestamps *bool `tfsdk:"honor_timestamps" json:"honorTimestamps,omitempty"` + HttpSDConfigs *[]struct { + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` + BasicAuth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basicAuth,omitempty"` + ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` + Proxy_client_config *struct { + Basic_auth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basic_auth,omitempty"` + Bearer_token *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"bearer_token" json:"bearer_token,omitempty"` + Bearer_token_file *string `tfsdk:"bearer_token_file" json:"bearer_token_file,omitempty"` + Tls_config *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tls_config,omitempty"` + } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` + TlsConfig *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` + Url *string `tfsdk:"url" json:"url,omitempty"` + } `tfsdk:"http_sd_configs" json:"httpSDConfigs,omitempty"` + Interval *string `tfsdk:"interval" json:"interval,omitempty"` + KubernetesSDConfigs *[]struct { + ApiServer *string `tfsdk:"api_server" json:"apiServer,omitempty"` + Attach_metadata *struct { + Node *bool `tfsdk:"node" json:"node,omitempty"` + } `tfsdk:"attach_metadata" json:"attach_metadata,omitempty"` + Authorization *struct { + Credentials *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"credentials" json:"credentials,omitempty"` + CredentialsFile *string `tfsdk:"credentials_file" json:"credentialsFile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"authorization" json:"authorization,omitempty"` + BasicAuth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basicAuth,omitempty"` + FollowRedirects *bool `tfsdk:"follow_redirects" json:"followRedirects,omitempty"` + Namespaces *struct { + Names *[]string `tfsdk:"names" json:"names,omitempty"` + OwnNamespace *bool `tfsdk:"own_namespace" json:"ownNamespace,omitempty"` + } `tfsdk:"namespaces" json:"namespaces,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` + ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` + Proxy_client_config *struct { + Basic_auth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basic_auth,omitempty"` + Bearer_token *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"bearer_token" json:"bearer_token,omitempty"` + Bearer_token_file *string `tfsdk:"bearer_token_file" json:"bearer_token_file,omitempty"` + Tls_config *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tls_config,omitempty"` + } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` + Role *string `tfsdk:"role" json:"role,omitempty"` + Selectors *[]struct { + Field *string `tfsdk:"field" json:"field,omitempty"` + Label *string `tfsdk:"label" json:"label,omitempty"` + Role *string `tfsdk:"role" json:"role,omitempty"` + } `tfsdk:"selectors" json:"selectors,omitempty"` + TlsConfig *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` + } `tfsdk:"kubernetes_sd_configs" json:"kubernetesSDConfigs,omitempty"` + Max_scrape_size *string `tfsdk:"max_scrape_size" json:"max_scrape_size,omitempty"` + MetricRelabelConfigs *[]struct { + Action *string `tfsdk:"action" json:"action,omitempty"` + If *map[string]string `tfsdk:"if" json:"if,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Match *string `tfsdk:"match" json:"match,omitempty"` + Modulus *int64 `tfsdk:"modulus" json:"modulus,omitempty"` + Regex *map[string]string `tfsdk:"regex" json:"regex,omitempty"` + Replacement *string `tfsdk:"replacement" json:"replacement,omitempty"` + Separator *string `tfsdk:"separator" json:"separator,omitempty"` + SourceLabels *[]string `tfsdk:"source_labels" json:"sourceLabels,omitempty"` + Source_labels *[]string `tfsdk:"source_labels" json:"source_labels,omitempty"` + TargetLabel *string `tfsdk:"target_label" json:"targetLabel,omitempty"` + Target_label *string `tfsdk:"target_label" json:"target_label,omitempty"` + } `tfsdk:"metric_relabel_configs" json:"metricRelabelConfigs,omitempty"` + Oauth2 *struct { + Client_id *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"client_id" json:"client_id,omitempty"` + Client_secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"client_secret" json:"client_secret,omitempty"` + Client_secret_file *string `tfsdk:"client_secret_file" json:"client_secret_file,omitempty"` + Endpoint_params *map[string]string `tfsdk:"endpoint_params" json:"endpoint_params,omitempty"` + Scopes *[]string `tfsdk:"scopes" json:"scopes,omitempty"` + Token_url *string `tfsdk:"token_url" json:"token_url,omitempty"` + } `tfsdk:"oauth2" json:"oauth2,omitempty"` + OpenstackSDConfigs *[]struct { + AllTenants *bool `tfsdk:"all_tenants" json:"allTenants,omitempty"` + ApplicationCredentialId *string `tfsdk:"application_credential_id" json:"applicationCredentialId,omitempty"` + ApplicationCredentialName *string `tfsdk:"application_credential_name" json:"applicationCredentialName,omitempty"` + ApplicationCredentialSecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"application_credential_secret" json:"applicationCredentialSecret,omitempty"` + Availability *string `tfsdk:"availability" json:"availability,omitempty"` + DomainID *string `tfsdk:"domain_id" json:"domainID,omitempty"` + DomainName *string `tfsdk:"domain_name" json:"domainName,omitempty"` + IdentityEndpoint *string `tfsdk:"identity_endpoint" json:"identityEndpoint,omitempty"` + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + ProjectID *string `tfsdk:"project_id" json:"projectID,omitempty"` + ProjectName *string `tfsdk:"project_name" json:"projectName,omitempty"` + Region *string `tfsdk:"region" json:"region,omitempty"` + Role *string `tfsdk:"role" json:"role,omitempty"` + TlsConfig *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` + Userid *string `tfsdk:"userid" json:"userid,omitempty"` + Username *string `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"openstack_sd_configs" json:"openstackSDConfigs,omitempty"` + Params *map[string][]string `tfsdk:"params" json:"params,omitempty"` + Path *string `tfsdk:"path" json:"path,omitempty"` + ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` + RelabelConfigs *[]struct { + Action *string `tfsdk:"action" json:"action,omitempty"` + If *map[string]string `tfsdk:"if" json:"if,omitempty"` + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Match *string `tfsdk:"match" json:"match,omitempty"` + Modulus *int64 `tfsdk:"modulus" json:"modulus,omitempty"` + Regex *map[string]string `tfsdk:"regex" json:"regex,omitempty"` + Replacement *string `tfsdk:"replacement" json:"replacement,omitempty"` + Separator *string `tfsdk:"separator" json:"separator,omitempty"` + SourceLabels *[]string `tfsdk:"source_labels" json:"sourceLabels,omitempty"` + Source_labels *[]string `tfsdk:"source_labels" json:"source_labels,omitempty"` + TargetLabel *string `tfsdk:"target_label" json:"targetLabel,omitempty"` + Target_label *string `tfsdk:"target_label" json:"target_label,omitempty"` + } `tfsdk:"relabel_configs" json:"relabelConfigs,omitempty"` + SampleLimit *int64 `tfsdk:"sample_limit" json:"sampleLimit,omitempty"` + Scheme *string `tfsdk:"scheme" json:"scheme,omitempty"` + ScrapeTimeout *string `tfsdk:"scrape_timeout" json:"scrapeTimeout,omitempty"` + Scrape_interval *string `tfsdk:"scrape_interval" json:"scrape_interval,omitempty"` + SeriesLimit *int64 `tfsdk:"series_limit" json:"seriesLimit,omitempty"` + StaticConfigs *[]struct { + Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Targets *[]string `tfsdk:"targets" json:"targets,omitempty"` + } `tfsdk:"static_configs" json:"staticConfigs,omitempty"` + TlsConfig *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` + Vm_scrape_params *struct { + Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` + Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` + Proxy_client_config *struct { + Basic_auth *struct { + Password *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"password" json:"password,omitempty"` + Password_file *string `tfsdk:"password_file" json:"password_file,omitempty"` + Username *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"username" json:"username,omitempty"` + } `tfsdk:"basic_auth" json:"basic_auth,omitempty"` + Bearer_token *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"bearer_token" json:"bearer_token,omitempty"` + Bearer_token_file *string `tfsdk:"bearer_token_file" json:"bearer_token_file,omitempty"` + Tls_config *struct { + Ca *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"ca" json:"ca,omitempty"` + CaFile *string `tfsdk:"ca_file" json:"caFile,omitempty"` + Cert *struct { + ConfigMap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"config_map" json:"configMap,omitempty"` + Secret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"secret" json:"secret,omitempty"` + } `tfsdk:"cert" json:"cert,omitempty"` + CertFile *string `tfsdk:"cert_file" json:"certFile,omitempty"` + InsecureSkipVerify *bool `tfsdk:"insecure_skip_verify" json:"insecureSkipVerify,omitempty"` + KeyFile *string `tfsdk:"key_file" json:"keyFile,omitempty"` + KeySecret *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"key_secret" json:"keySecret,omitempty"` + ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` + } `tfsdk:"tls_config" json:"tls_config,omitempty"` + } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` + Scrape_align_interval *string `tfsdk:"scrape_align_interval" json:"scrape_align_interval,omitempty"` + Scrape_offset *string `tfsdk:"scrape_offset" json:"scrape_offset,omitempty"` + Stream_parse *bool `tfsdk:"stream_parse" json:"stream_parse,omitempty"` + } `tfsdk:"vm_scrape_params" json:"vm_scrape_params,omitempty"` + } `tfsdk:"spec" json:"spec,omitempty"` +} + +func (r *OperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest) Metadata(_ context.Context, request datasource.MetadataRequest, response *datasource.MetadataResponse) { + response.TypeName = request.ProviderTypeName + "_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest" +} + +func (r *OperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest) Schema(_ context.Context, _ datasource.SchemaRequest, response *datasource.SchemaResponse) { + response.Schema = schema.Schema{ + Description: "VMScrapeConfig specifies a set of targets and parameters describing how to scrape them.", + MarkdownDescription: "VMScrapeConfig specifies a set of targets and parameters describing how to scrape them.", + Attributes: map[string]schema.Attribute{ + "yaml": schema.StringAttribute{ + Description: "The generated manifest in YAML format.", + MarkdownDescription: "The generated manifest in YAML format.", + Required: false, + Optional: false, + Computed: true, + }, + + "metadata": schema.SingleNestedAttribute{ + Description: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + MarkdownDescription: "Data that helps uniquely identify this object. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata for more details.", + Required: true, + Optional: false, + Computed: false, + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + MarkdownDescription: "Unique identifier for this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + MarkdownDescription: "Namespaces provides a mechanism for isolating groups of resources within a single cluster. See https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ for more details.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + validators.NameValidator(), + stringvalidator.LengthAtLeast(1), + }, + }, + + "labels": schema.MapAttribute{ + Description: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + MarkdownDescription: "Keys and values that can be used to organize and categorize objects. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.LabelValidator(), + }, + }, + "annotations": schema.MapAttribute{ + Description: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + MarkdownDescription: "Keys and values that can be used by external tooling to store and retrieve arbitrary metadata about this object. See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ for more details.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + Validators: []validator.Map{ + validators.AnnotationValidator(), + }, + }, + }, + }, + + "spec": schema.SingleNestedAttribute{ + Description: "VMScrapeConfigSpec defines the desired state of VMScrapeConfig", + MarkdownDescription: "VMScrapeConfigSpec defines the desired state of VMScrapeConfig", + Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization with http header Authorization", + MarkdownDescription: "Authorization with http header Authorization", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "azure_sd_configs": schema.ListNestedAttribute{ + Description: "AzureSDConfigs defines a list of Azure service discovery configurations.", + MarkdownDescription: "AzureSDConfigs defines a list of Azure service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "authentication_method": schema.StringAttribute{ + Description: "# The authentication method, either OAuth or ManagedIdentity. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview", + MarkdownDescription: "# The authentication method, either OAuth or ManagedIdentity. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("OAuth", "ManagedIdentity"), + }, + }, + + "client_id": schema.StringAttribute{ + Description: "Optional client ID. Only required with the OAuth authentication method.", + MarkdownDescription: "Optional client ID. Only required with the OAuth authentication method.", + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "Optional client secret. Only required with the OAuth authentication method.", + MarkdownDescription: "Optional client secret. Only required with the OAuth authentication method.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "environment": schema.StringAttribute{ + Description: "The Azure environment.", + MarkdownDescription: "The Azure environment.", + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + MarkdownDescription: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + Required: false, + Optional: true, + Computed: false, + }, + + "resource_group": schema.StringAttribute{ + Description: "Optional resource group name. Limits discovery to this resource group.", + MarkdownDescription: "Optional resource group name. Limits discovery to this resource group.", + Required: false, + Optional: true, + Computed: false, + }, + + "subscription_id": schema.StringAttribute{ + Description: "The subscription ID. Always required.", + MarkdownDescription: "The subscription ID. Always required.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + + "tenant_id": schema.StringAttribute{ + Description: "Optional tenant ID. Only required with the OAuth authentication method.", + MarkdownDescription: "Optional tenant ID. Only required with the OAuth authentication method.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_file": schema.StringAttribute{ + Description: "File to read bearer token for scraping targets.", + MarkdownDescription: "File to read bearer token for scraping targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_secret": schema.SingleNestedAttribute{ + Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", + MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "consul_sd_configs": schema.ListNestedAttribute{ + Description: "ConsulSDConfigs defines a list of Consul service discovery configurations.", + MarkdownDescription: "ConsulSDConfigs defines a list of Consul service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "allow_stale": schema.BoolAttribute{ + Description: "Allow stale Consul results (see https://developer.hashicorp.com/consul/api-docs/features/consistency). Will reduce load on Consul. If unset, use its default value.", + MarkdownDescription: "Allow stale Consul results (see https://developer.hashicorp.com/consul/api-docs/features/consistency). Will reduce load on Consul. If unset, use its default value.", + Required: false, + Optional: true, + Computed: false, + }, + + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header to use on every scrape request.", + MarkdownDescription: "Authorization header to use on every scrape request.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth information to use on every scrape request.", + MarkdownDescription: "BasicAuth information to use on every scrape request.", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "datacenter": schema.StringAttribute{ + Description: "Consul Datacenter name, if not provided it will use the local Consul Agent Datacenter.", + MarkdownDescription: "Consul Datacenter name, if not provided it will use the local Consul Agent Datacenter.", + Required: false, + Optional: true, + Computed: false, + }, + + "follow_redirects": schema.BoolAttribute{ + Description: "Configure whether HTTP requests follow HTTP 3xx redirects. If unset, use its default value.", + MarkdownDescription: "Configure whether HTTP requests follow HTTP 3xx redirects. If unset, use its default value.", + Required: false, + Optional: true, + Computed: false, + }, + + "namespace": schema.StringAttribute{ + Description: "Namespaces are only supported in Consul Enterprise.", + MarkdownDescription: "Namespaces are only supported in Consul Enterprise.", + Required: false, + Optional: true, + Computed: false, + }, + + "node_meta": schema.MapAttribute{ + Description: "Node metadata key/value pairs to filter nodes for a given service.", + MarkdownDescription: "Node metadata key/value pairs to filter nodes for a given service.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 defines auth configuration", + MarkdownDescription: "OAuth2 defines auth configuration", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "partition": schema.StringAttribute{ + Description: "Admin Partitions are only supported in Consul Enterprise.", + MarkdownDescription: "Admin Partitions are only supported in Consul Enterprise.", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_url": schema.StringAttribute{ + Description: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + MarkdownDescription: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_client_config": schema.SingleNestedAttribute{ + Description: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + Attributes: map[string]schema.Attribute{ + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token": schema.SingleNestedAttribute{ + Description: "SecretKeySelector selects a key of a Secret.", + MarkdownDescription: "SecretKeySelector selects a key of a Secret.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_file": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLSConfig specifies TLSConfig configuration parameters.", + MarkdownDescription: "TLSConfig specifies TLSConfig configuration parameters.", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "scheme": schema.StringAttribute{ + Description: "HTTP Scheme default 'http'", + MarkdownDescription: "HTTP Scheme default 'http'", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("HTTP", "HTTPS"), + }, + }, + + "server": schema.StringAttribute{ + Description: "A valid string consisting of a hostname or IP followed by an optional port number.", + MarkdownDescription: "A valid string consisting of a hostname or IP followed by an optional port number.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + + "services": schema.ListAttribute{ + Description: "A list of services for which targets are retrieved. If omitted, all services are scraped.", + MarkdownDescription: "A list of services for which targets are retrieved. If omitted, all services are scraped.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "tag_separator": schema.StringAttribute{ + Description: "The string by which Consul tags are joined into the tag label. If unset, use its default value.", + MarkdownDescription: "The string by which Consul tags are joined into the tag label. If unset, use its default value.", + Required: false, + Optional: true, + Computed: false, + }, + + "tags": schema.ListAttribute{ + Description: "An optional list of tags used to filter nodes for a given service. Services must contain all tags in the list.", + MarkdownDescription: "An optional list of tags used to filter nodes for a given service. Services must contain all tags in the list.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLS configuration to use on every scrape request", + MarkdownDescription: "TLS configuration to use on every scrape request", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "token_ref": schema.SingleNestedAttribute{ + Description: "Consul ACL TokenRef, if not provided it will use the ACL from the local Consul Agent.", + MarkdownDescription: "Consul ACL TokenRef, if not provided it will use the ACL from the local Consul Agent.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "digital_ocean_sd_configs": schema.ListNestedAttribute{ + Description: "DigitalOceanSDConfigs defines a list of DigitalOcean service discovery configurations.", + MarkdownDescription: "DigitalOceanSDConfigs defines a list of DigitalOcean service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header to use on every scrape request.", + MarkdownDescription: "Authorization header to use on every scrape request.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "follow_redirects": schema.BoolAttribute{ + Description: "Configure whether HTTP requests follow HTTP 3xx redirects.", + MarkdownDescription: "Configure whether HTTP requests follow HTTP 3xx redirects.", + Required: false, + Optional: true, + Computed: false, + }, + + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 defines auth configuration", + MarkdownDescription: "OAuth2 defines auth configuration", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "The port to scrape metrics from.", + MarkdownDescription: "The port to scrape metrics from.", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_url": schema.StringAttribute{ + Description: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + MarkdownDescription: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_client_config": schema.SingleNestedAttribute{ + Description: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + Attributes: map[string]schema.Attribute{ + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token": schema.SingleNestedAttribute{ + Description: "SecretKeySelector selects a key of a Secret.", + MarkdownDescription: "SecretKeySelector selects a key of a Secret.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_file": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLSConfig specifies TLSConfig configuration parameters.", + MarkdownDescription: "TLSConfig specifies TLSConfig configuration parameters.", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLS configuration to use on every scrape request", + MarkdownDescription: "TLS configuration to use on every scrape request", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "dns_sd_configs": schema.ListNestedAttribute{ + Description: "DNSSDConfigs defines a list of DNS service discovery configurations.", + MarkdownDescription: "DNSSDConfigs defines a list of DNS service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "names": schema.ListAttribute{ + Description: "A list of DNS domain names to be queried.", + MarkdownDescription: "A list of DNS domain names to be queried.", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "The port number used if the query type is not SRV Ignored for SRV records", + MarkdownDescription: "The port number used if the query type is not SRV Ignored for SRV records", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("SRV", "A", "AAAA", "MX"), + }, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ec2_sd_configs": schema.ListNestedAttribute{ + Description: "EC2SDConfigs defines a list of EC2 service discovery configurations.", + MarkdownDescription: "EC2SDConfigs defines a list of EC2 service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "access_key": schema.SingleNestedAttribute{ + Description: "AccessKey is the AWS API key.", + MarkdownDescription: "AccessKey is the AWS API key.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "filters": schema.ListNestedAttribute{ + Description: "Filters can be used optionally to filter the instance list by other criteria. Available filter criteria can be found here: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html Filter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html", + MarkdownDescription: "Filters can be used optionally to filter the instance list by other criteria. Available filter criteria can be found here: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html Filter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "values": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + MarkdownDescription: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + Required: false, + Optional: true, + Computed: false, + }, + + "region": schema.StringAttribute{ + Description: "The AWS region", + MarkdownDescription: "The AWS region", + Required: false, + Optional: true, + Computed: false, + }, + + "role_arn": schema.StringAttribute{ + Description: "AWS Role ARN, an alternative to using AWS API keys.", + MarkdownDescription: "AWS Role ARN, an alternative to using AWS API keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "secret_key": schema.SingleNestedAttribute{ + Description: "SecretKey is the AWS API secret.", + MarkdownDescription: "SecretKey is the AWS API secret.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "file_sd_configs": schema.ListNestedAttribute{ + Description: "FileSDConfigs defines a list of file service discovery configurations.", + MarkdownDescription: "FileSDConfigs defines a list of file service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "files": schema.ListAttribute{ + Description: "List of files to be used for file discovery.", + MarkdownDescription: "List of files to be used for file discovery.", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "follow_redirects": schema.BoolAttribute{ + Description: "FollowRedirects controls redirects for scraping.", + MarkdownDescription: "FollowRedirects controls redirects for scraping.", + Required: false, + Optional: true, + Computed: false, + }, + + "gce_sd_configs": schema.ListNestedAttribute{ + Description: "GCESDConfigs defines a list of GCE service discovery configurations.", + MarkdownDescription: "GCESDConfigs defines a list of GCE service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "filter": schema.StringAttribute{ + Description: "Filter can be used optionally to filter the instance list by other criteria Syntax of this filter is described in the filter query parameter section: https://cloud.google.com/compute/docs/reference/latest/instances/list", + MarkdownDescription: "Filter can be used optionally to filter the instance list by other criteria Syntax of this filter is described in the filter query parameter section: https://cloud.google.com/compute/docs/reference/latest/instances/list", + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + MarkdownDescription: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + Required: false, + Optional: true, + Computed: false, + }, + + "project": schema.StringAttribute{ + Description: "The Google Cloud Project ID", + MarkdownDescription: "The Google Cloud Project ID", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + + "tag_separator": schema.StringAttribute{ + Description: "The tag separator is used to separate the tags on concatenation", + MarkdownDescription: "The tag separator is used to separate the tags on concatenation", + Required: false, + Optional: true, + Computed: false, + }, + + "zone": schema.StringAttribute{ + Description: "The zone of the scrape targets. If you need multiple zones use multiple GCESDConfigs.", + MarkdownDescription: "The zone of the scrape targets. If you need multiple zones use multiple GCESDConfigs.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "honor_labels": schema.BoolAttribute{ + Description: "HonorLabels chooses the metric's labels on collisions with target labels.", + MarkdownDescription: "HonorLabels chooses the metric's labels on collisions with target labels.", + Required: false, + Optional: true, + Computed: false, + }, + + "honor_timestamps": schema.BoolAttribute{ + Description: "HonorTimestamps controls whether vmagent respects the timestamps present in scraped data.", + MarkdownDescription: "HonorTimestamps controls whether vmagent respects the timestamps present in scraped data.", + Required: false, + Optional: true, + Computed: false, + }, + + "http_sd_configs": schema.ListNestedAttribute{ + Description: "HTTPSDConfigs defines a list of HTTP service discovery configurations.", + MarkdownDescription: "HTTPSDConfigs defines a list of HTTP service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header to use on every scrape request.", + MarkdownDescription: "Authorization header to use on every scrape request.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth information to use on every scrape request.", + MarkdownDescription: "BasicAuth information to use on every scrape request.", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_url": schema.StringAttribute{ + Description: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + MarkdownDescription: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_client_config": schema.SingleNestedAttribute{ + Description: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + Attributes: map[string]schema.Attribute{ + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token": schema.SingleNestedAttribute{ + Description: "SecretKeySelector selects a key of a Secret.", + MarkdownDescription: "SecretKeySelector selects a key of a Secret.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_file": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLSConfig specifies TLSConfig configuration parameters.", + MarkdownDescription: "TLSConfig specifies TLSConfig configuration parameters.", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLS configuration to use on every scrape request", + MarkdownDescription: "TLS configuration to use on every scrape request", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "url": schema.StringAttribute{ + Description: "URL from which the targets are fetched.", + MarkdownDescription: "URL from which the targets are fetched.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + stringvalidator.RegexMatches(regexp.MustCompile(`^http(s)?://.+$`), ""), + }, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "interval": schema.StringAttribute{ + Description: "Interval at which metrics should be scraped", + MarkdownDescription: "Interval at which metrics should be scraped", + Required: false, + Optional: true, + Computed: false, + }, + + "kubernetes_sd_configs": schema.ListNestedAttribute{ + Description: "KubernetesSDConfigs defines a list of Kubernetes service discovery configurations.", + MarkdownDescription: "KubernetesSDConfigs defines a list of Kubernetes service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "api_server": schema.StringAttribute{ + Description: "The API server address consisting of a hostname or IP address followed by an optional port number. If left empty, assuming process is running inside of the cluster. It will discover API servers automatically and use the pod's CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.", + MarkdownDescription: "The API server address consisting of a hostname or IP address followed by an optional port number. If left empty, assuming process is running inside of the cluster. It will discover API servers automatically and use the pod's CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.", + Required: false, + Optional: true, + Computed: false, + }, + + "attach_metadata": schema.SingleNestedAttribute{ + Description: "AttachMetadata configures metadata attaching from service discovery", + MarkdownDescription: "AttachMetadata configures metadata attaching from service discovery", + Attributes: map[string]schema.Attribute{ + "node": schema.BoolAttribute{ + Description: "Node instructs vmagent to add node specific metadata from service discovery Valid for roles: pod, endpoints, endpointslice.", + MarkdownDescription: "Node instructs vmagent to add node specific metadata from service discovery Valid for roles: pod, endpoints, endpointslice.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "authorization": schema.SingleNestedAttribute{ + Description: "Authorization header to use on every scrape request.", + MarkdownDescription: "Authorization header to use on every scrape request.", + Attributes: map[string]schema.Attribute{ + "credentials": schema.SingleNestedAttribute{ + Description: "Reference to the secret with value for authorization", + MarkdownDescription: "Reference to the secret with value for authorization", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "credentials_file": schema.StringAttribute{ + Description: "File with value for authorization", + MarkdownDescription: "File with value for authorization", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "Type of authorization, default to bearer", + MarkdownDescription: "Type of authorization, default to bearer", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth information to use on every scrape request.", + MarkdownDescription: "BasicAuth information to use on every scrape request.", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "follow_redirects": schema.BoolAttribute{ + Description: "Configure whether HTTP requests follow HTTP 3xx redirects.", + MarkdownDescription: "Configure whether HTTP requests follow HTTP 3xx redirects.", + Required: false, + Optional: true, + Computed: false, + }, + + "namespaces": schema.SingleNestedAttribute{ + Description: "Optional namespace discovery. If omitted, discover targets across all namespaces.", + MarkdownDescription: "Optional namespace discovery. If omitted, discover targets across all namespaces.", + Attributes: map[string]schema.Attribute{ + "names": schema.ListAttribute{ + Description: "List of namespaces where to watch for resources. If empty and 'ownNamespace' isn't true, watch for resources in all namespaces.", + MarkdownDescription: "List of namespaces where to watch for resources. If empty and 'ownNamespace' isn't true, watch for resources in all namespaces.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "own_namespace": schema.BoolAttribute{ + Description: "Includes the namespace in which the pod exists to the list of watched namespaces.", + MarkdownDescription: "Includes the namespace in which the pod exists to the list of watched namespaces.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 defines auth configuration", + MarkdownDescription: "OAuth2 defines auth configuration", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_url": schema.StringAttribute{ + Description: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + MarkdownDescription: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_client_config": schema.SingleNestedAttribute{ + Description: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy)", + Attributes: map[string]schema.Attribute{ + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token": schema.SingleNestedAttribute{ + Description: "SecretKeySelector selects a key of a Secret.", + MarkdownDescription: "SecretKeySelector selects a key of a Secret.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_file": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLSConfig specifies TLSConfig configuration parameters.", + MarkdownDescription: "TLSConfig specifies TLSConfig configuration parameters.", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "role": schema.StringAttribute{ + Description: "Role of the Kubernetes entities that should be discovered.", + MarkdownDescription: "Role of the Kubernetes entities that should be discovered.", + Required: true, + Optional: false, + Computed: false, + }, + + "selectors": schema.ListNestedAttribute{ + Description: "Selector to select objects.", + MarkdownDescription: "Selector to select objects.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "field": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "label": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "role": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLS configuration to use on every scrape request", + MarkdownDescription: "TLS configuration to use on every scrape request", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "max_scrape_size": schema.StringAttribute{ + Description: "MaxScrapeSize defines a maximum size of scraped data for a job", + MarkdownDescription: "MaxScrapeSize defines a maximum size of scraped data for a job", + Required: false, + Optional: true, + Computed: false, + }, + + "metric_relabel_configs": schema.ListNestedAttribute{ + Description: "MetricRelabelConfigs to apply to samples after scrapping.", + MarkdownDescription: "MetricRelabelConfigs to apply to samples after scrapping.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "action": schema.StringAttribute{ + Description: "Action to perform based on regex matching. Default is 'replace'", + MarkdownDescription: "Action to perform based on regex matching. Default is 'replace'", + Required: false, + Optional: true, + Computed: false, + }, + + "if": schema.MapAttribute{ + Description: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + MarkdownDescription: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels is used together with Match for 'action: graphite'", + MarkdownDescription: "Labels is used together with Match for 'action: graphite'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "match": schema.StringAttribute{ + Description: "Match is used together with Labels for 'action: graphite'", + MarkdownDescription: "Match is used together with Labels for 'action: graphite'", + Required: false, + Optional: true, + Computed: false, + }, + + "modulus": schema.Int64Attribute{ + Description: "Modulus to take of the hash of the source label values.", + MarkdownDescription: "Modulus to take of the hash of the source label values.", + Required: false, + Optional: true, + Computed: false, + }, + + "regex": schema.MapAttribute{ + Description: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + MarkdownDescription: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "replacement": schema.StringAttribute{ + Description: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + MarkdownDescription: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + Required: false, + Optional: true, + Computed: false, + }, + + "separator": schema.StringAttribute{ + Description: "Separator placed between concatenated source label values. default is ';'.", + MarkdownDescription: "Separator placed between concatenated source label values. default is ';'.", + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + MarkdownDescription: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + MarkdownDescription: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "oauth2": schema.SingleNestedAttribute{ + Description: "OAuth2 defines auth configuration", + MarkdownDescription: "OAuth2 defines auth configuration", + Attributes: map[string]schema.Attribute{ + "client_id": schema.SingleNestedAttribute{ + Description: "The secret or configmap containing the OAuth2 client id", + MarkdownDescription: "The secret or configmap containing the OAuth2 client id", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "client_secret": schema.SingleNestedAttribute{ + Description: "The secret containing the OAuth2 client secret", + MarkdownDescription: "The secret containing the OAuth2 client secret", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "client_secret_file": schema.StringAttribute{ + Description: "ClientSecretFile defines path for client secret file.", + MarkdownDescription: "ClientSecretFile defines path for client secret file.", + Required: false, + Optional: true, + Computed: false, + }, + + "endpoint_params": schema.MapAttribute{ + Description: "Parameters to append to the token URL", + MarkdownDescription: "Parameters to append to the token URL", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "scopes": schema.ListAttribute{ + Description: "OAuth2 scopes used for the token request", + MarkdownDescription: "OAuth2 scopes used for the token request", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "token_url": schema.StringAttribute{ + Description: "The URL to fetch the token from", + MarkdownDescription: "The URL to fetch the token from", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "openstack_sd_configs": schema.ListNestedAttribute{ + Description: "OpenStackSDConfigs defines a list of OpenStack service discovery configurations.", + MarkdownDescription: "OpenStackSDConfigs defines a list of OpenStack service discovery configurations.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "all_tenants": schema.BoolAttribute{ + Description: "Whether the service discovery should list all instances for all projects. It is only relevant for the 'instance' role and usually requires admin permissions.", + MarkdownDescription: "Whether the service discovery should list all instances for all projects. It is only relevant for the 'instance' role and usually requires admin permissions.", + Required: false, + Optional: true, + Computed: false, + }, + + "application_credential_id": schema.StringAttribute{ + Description: "ApplicationCredentialID", + MarkdownDescription: "ApplicationCredentialID", + Required: false, + Optional: true, + Computed: false, + }, + + "application_credential_name": schema.StringAttribute{ + Description: "The ApplicationCredentialID or ApplicationCredentialName fields are required if using an application credential to authenticate. Some providers allow you to create an application credential to authenticate rather than a password.", + MarkdownDescription: "The ApplicationCredentialID or ApplicationCredentialName fields are required if using an application credential to authenticate. Some providers allow you to create an application credential to authenticate rather than a password.", + Required: false, + Optional: true, + Computed: false, + }, + + "application_credential_secret": schema.SingleNestedAttribute{ + Description: "The applicationCredentialSecret field is required if using an application credential to authenticate.", + MarkdownDescription: "The applicationCredentialSecret field is required if using an application credential to authenticate.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "availability": schema.StringAttribute{ + Description: "Availability of the endpoint to connect to.", + MarkdownDescription: "Availability of the endpoint to connect to.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Public", "public", "Admin", "admin", "Internal", "internal"), + }, + }, + + "domain_id": schema.StringAttribute{ + Description: "DomainID", + MarkdownDescription: "DomainID", + Required: false, + Optional: true, + Computed: false, + }, + + "domain_name": schema.StringAttribute{ + Description: "At most one of domainId and domainName must be provided if using username with Identity V3. Otherwise, either are optional.", + MarkdownDescription: "At most one of domainId and domainName must be provided if using username with Identity V3. Otherwise, either are optional.", + Required: false, + Optional: true, + Computed: false, + }, + + "identity_endpoint": schema.StringAttribute{ + Description: "IdentityEndpoint specifies the HTTP endpoint that is required to work with the Identity API of the appropriate version.", + MarkdownDescription: "IdentityEndpoint specifies the HTTP endpoint that is required to work with the Identity API of the appropriate version.", + Required: false, + Optional: true, + Computed: false, + }, + + "password": schema.SingleNestedAttribute{ + Description: "Password for the Identity V2 and V3 APIs. Consult with your provider's control panel to discover your account's preferred method of authentication.", + MarkdownDescription: "Password for the Identity V2 and V3 APIs. Consult with your provider's control panel to discover your account's preferred method of authentication.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "port": schema.Int64Attribute{ + Description: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + MarkdownDescription: "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.", + Required: false, + Optional: true, + Computed: false, + }, + + "project_id": schema.StringAttribute{ + Description: " ProjectID", + MarkdownDescription: " ProjectID", + Required: false, + Optional: true, + Computed: false, + }, + + "project_name": schema.StringAttribute{ + Description: "The ProjectId and ProjectName fields are optional for the Identity V2 API. Some providers allow you to specify a ProjectName instead of the ProjectId. Some require both. Your provider's authentication policies will determine how these fields influence authentication.", + MarkdownDescription: "The ProjectId and ProjectName fields are optional for the Identity V2 API. Some providers allow you to specify a ProjectName instead of the ProjectId. Some require both. Your provider's authentication policies will determine how these fields influence authentication.", + Required: false, + Optional: true, + Computed: false, + }, + + "region": schema.StringAttribute{ + Description: "The OpenStack Region.", + MarkdownDescription: "The OpenStack Region.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + }, + + "role": schema.StringAttribute{ + Description: "The OpenStack role of entities that should be discovered.", + MarkdownDescription: "The OpenStack role of entities that should be discovered.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("Instance", "instance", "Hypervisor", "hypervisor"), + }, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLS configuration to use on every scrape request", + MarkdownDescription: "TLS configuration to use on every scrape request", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "userid": schema.StringAttribute{ + Description: "UserID", + MarkdownDescription: "UserID", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.StringAttribute{ + Description: "Username is required if using Identity V2 API. Consult with your provider's control panel to discover your account's username. In Identity V3, either userid or a combination of username and domainId or domainName are needed", + MarkdownDescription: "Username is required if using Identity V2 API. Consult with your provider's control panel to discover your account's username. In Identity V3, either userid or a combination of username and domainId or domainName are needed", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "params": schema.MapAttribute{ + Description: "Optional HTTP URL parameters", + MarkdownDescription: "Optional HTTP URL parameters", + ElementType: types.ListType{ElemType: types.StringType}, + Required: false, + Optional: true, + Computed: false, + }, + + "path": schema.StringAttribute{ + Description: "HTTP path to scrape for metrics.", + MarkdownDescription: "HTTP path to scrape for metrics.", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_url": schema.StringAttribute{ + Description: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + MarkdownDescription: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", + Required: false, + Optional: true, + Computed: false, + }, + + "relabel_configs": schema.ListNestedAttribute{ + Description: "RelabelConfigs to apply to samples during service discovery.", + MarkdownDescription: "RelabelConfigs to apply to samples during service discovery.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "action": schema.StringAttribute{ + Description: "Action to perform based on regex matching. Default is 'replace'", + MarkdownDescription: "Action to perform based on regex matching. Default is 'replace'", + Required: false, + Optional: true, + Computed: false, + }, + + "if": schema.MapAttribute{ + Description: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + MarkdownDescription: "If represents metricsQL match expression (or list of expressions): '{__name__=~'foo_.*'}'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "labels": schema.MapAttribute{ + Description: "Labels is used together with Match for 'action: graphite'", + MarkdownDescription: "Labels is used together with Match for 'action: graphite'", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "match": schema.StringAttribute{ + Description: "Match is used together with Labels for 'action: graphite'", + MarkdownDescription: "Match is used together with Labels for 'action: graphite'", + Required: false, + Optional: true, + Computed: false, + }, + + "modulus": schema.Int64Attribute{ + Description: "Modulus to take of the hash of the source label values.", + MarkdownDescription: "Modulus to take of the hash of the source label values.", + Required: false, + Optional: true, + Computed: false, + }, + + "regex": schema.MapAttribute{ + Description: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + MarkdownDescription: "Regular expression against which the extracted value is matched. Default is '(.*)' victoriaMetrics supports multiline regex joined with | https://docs.victoriametrics.com/vmagent/#relabeling-enhancements", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "replacement": schema.StringAttribute{ + Description: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + MarkdownDescription: "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'", + Required: false, + Optional: true, + Computed: false, + }, + + "separator": schema.StringAttribute{ + Description: "Separator placed between concatenated source label values. default is ';'.", + MarkdownDescription: "Separator placed between concatenated source label values. default is ';'.", + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + MarkdownDescription: "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "source_labels": schema.ListAttribute{ + Description: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreSourceLabels - additional form of source labels source_labels for compatibility with original relabel config. if set both sourceLabels and source_labels, sourceLabels has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + MarkdownDescription: "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.", + Required: false, + Optional: true, + Computed: false, + }, + + "target_label": schema.StringAttribute{ + Description: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + MarkdownDescription: "UnderScoreTargetLabel - additional form of target label - target_label for compatibility with original relabel config. if set both targetLabel and target_label, targetLabel has priority. for details https://github.com/VictoriaMetrics/operator/issues/131", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "sample_limit": schema.Int64Attribute{ + Description: "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.", + MarkdownDescription: "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.", + Required: false, + Optional: true, + Computed: false, + }, + + "scheme": schema.StringAttribute{ + Description: "HTTP scheme to use for scraping.", + MarkdownDescription: "HTTP scheme to use for scraping.", + Required: false, + Optional: true, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("http", "https"), + }, + }, + + "scrape_timeout": schema.StringAttribute{ + Description: "Timeout after which the scrape is ended", + MarkdownDescription: "Timeout after which the scrape is ended", + Required: false, + Optional: true, + Computed: false, + }, + + "scrape_interval": schema.StringAttribute{ + Description: "ScrapeInterval is the same as Interval and has priority over it. one of scrape_interval or interval can be used", + MarkdownDescription: "ScrapeInterval is the same as Interval and has priority over it. one of scrape_interval or interval can be used", + Required: false, + Optional: true, + Computed: false, + }, + + "series_limit": schema.Int64Attribute{ + Description: "SeriesLimit defines per-scrape limit on number of unique time series a single target can expose during all the scrapes on the time window of 24h.", + MarkdownDescription: "SeriesLimit defines per-scrape limit on number of unique time series a single target can expose during all the scrapes on the time window of 24h.", + Required: false, + Optional: true, + Computed: false, + }, + + "static_configs": schema.ListNestedAttribute{ + Description: "StaticConfigs defines a list of static targets with a common label set.", + MarkdownDescription: "StaticConfigs defines a list of static targets with a common label set.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "labels": schema.MapAttribute{ + Description: "Labels assigned to all metrics scraped from the targets.", + MarkdownDescription: "Labels assigned to all metrics scraped from the targets.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "targets": schema.ListAttribute{ + Description: "List of targets for this static configuration.", + MarkdownDescription: "List of targets for this static configuration.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLSConfig configuration to use when scraping the endpoint", + MarkdownDescription: "TLSConfig configuration to use when scraping the endpoint", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "vm_scrape_params": schema.SingleNestedAttribute{ + Description: "VMScrapeParams defines VictoriaMetrics specific scrape parameters", + MarkdownDescription: "VMScrapeParams defines VictoriaMetrics specific scrape parameters", + Attributes: map[string]schema.Attribute{ + "disable_compression": schema.BoolAttribute{ + Description: "DisableCompression", + MarkdownDescription: "DisableCompression", + Required: false, + Optional: true, + Computed: false, + }, + + "disable_keep_alive": schema.BoolAttribute{ + Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", + MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", + Required: false, + Optional: true, + Computed: false, + }, + + "headers": schema.ListAttribute{ + Description: "Headers allows sending custom headers to scrape targets must be in of semicolon separated header with it's value eg: headerName: headerValue vmagent supports since 1.79.0 version", + MarkdownDescription: "Headers allows sending custom headers to scrape targets must be in of semicolon separated header with it's value eg: headerName: headerValue vmagent supports since 1.79.0 version", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "no_stale_markers": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "proxy_client_config": schema.SingleNestedAttribute{ + Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", + Attributes: map[string]schema.Attribute{ + "basic_auth": schema.SingleNestedAttribute{ + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", + Attributes: map[string]schema.Attribute{ + "password": schema.SingleNestedAttribute{ + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "password_file": schema.StringAttribute{ + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", + Required: false, + Optional: true, + Computed: false, + }, + + "username": schema.SingleNestedAttribute{ + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token": schema.SingleNestedAttribute{ + Description: "SecretKeySelector selects a key of a Secret.", + MarkdownDescription: "SecretKeySelector selects a key of a Secret.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "bearer_token_file": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tls_config": schema.SingleNestedAttribute{ + Description: "TLSConfig specifies TLSConfig configuration parameters.", + MarkdownDescription: "TLSConfig specifies TLSConfig configuration parameters.", + Attributes: map[string]schema.Attribute{ + "ca": schema.SingleNestedAttribute{ + Description: "Stuct containing the CA cert to use for the targets.", + MarkdownDescription: "Stuct containing the CA cert to use for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "ca_file": schema.StringAttribute{ + Description: "Path to the CA cert in the container to use for the targets.", + MarkdownDescription: "Path to the CA cert in the container to use for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "cert": schema.SingleNestedAttribute{ + Description: "Struct containing the client cert file for the targets.", + MarkdownDescription: "Struct containing the client cert file for the targets.", + Attributes: map[string]schema.Attribute{ + "config_map": schema.SingleNestedAttribute{ + Description: "ConfigMap containing data to use for the targets.", + MarkdownDescription: "ConfigMap containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "secret": schema.SingleNestedAttribute{ + Description: "Secret containing data to use for the targets.", + MarkdownDescription: "Secret containing data to use for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "cert_file": schema.StringAttribute{ + Description: "Path to the client cert file in the container for the targets.", + MarkdownDescription: "Path to the client cert file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "insecure_skip_verify": schema.BoolAttribute{ + Description: "Disable target certificate validation.", + MarkdownDescription: "Disable target certificate validation.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_file": schema.StringAttribute{ + Description: "Path to the client key file in the container for the targets.", + MarkdownDescription: "Path to the client key file in the container for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + + "key_secret": schema.SingleNestedAttribute{ + Description: "Secret containing the client key file for the targets.", + MarkdownDescription: "Secret containing the client key file for the targets.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key of the secret to select from. Must be a valid secret key.", + MarkdownDescription: "The key of the secret to select from. Must be a valid secret key.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the Secret or its key must be defined", + MarkdownDescription: "Specify whether the Secret or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "server_name": schema.StringAttribute{ + Description: "Used to verify the hostname for the targets.", + MarkdownDescription: "Used to verify the hostname for the targets.", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "scrape_align_interval": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "scrape_offset": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "stream_parse": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + } +} + +func (r *OperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest) Read(ctx context.Context, request datasource.ReadRequest, response *datasource.ReadResponse) { + tflog.Debug(ctx, "Read resource k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest") + + var model OperatorVictoriametricsComVmscrapeConfigV1Beta1ManifestData + response.Diagnostics.Append(request.Config.Get(ctx, &model)...) + if response.Diagnostics.HasError() { + return + } + + model.ApiVersion = pointer.String("operator.victoriametrics.com/v1beta1") + model.Kind = pointer.String("VMScrapeConfig") + + y, err := yaml.Marshal(model) + if err != nil { + response.Diagnostics.Append(utilities.MarshalYamlError(err)) + return + } + model.YAML = types.StringValue(string(y)) + + response.Diagnostics.Append(response.State.Set(ctx, &model)...) +} diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go new file mode 100644 index 000000000..aff8f5906 --- /dev/null +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go @@ -0,0 +1,31 @@ +/* +* SPDX-FileCopyrightText: The terraform-provider-k8s Authors +* SPDX-License-Identifier: 0BSD + */ + +package operator_victoriametrics_com_v1beta1_test + +import ( + "context" + fwdatasource "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/metio/terraform-provider-k8s/internal/provider/operator_victoriametrics_com_v1beta1" + "testing" +) + +func TestOperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest_ValidateSchema(t *testing.T) { + ctx := context.Background() + schemaRequest := fwdatasource.SchemaRequest{} + schemaResponse := &fwdatasource.SchemaResponse{} + + operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest().Schema(ctx, schemaRequest, schemaResponse) + + if schemaResponse.Diagnostics.HasError() { + t.Fatalf("Schema method diagnostics: %+v", schemaResponse.Diagnostics) + } + + diagnostics := schemaResponse.Schema.ValidateImplementation(ctx) + + if diagnostics.HasError() { + t.Fatalf("Schema validation diagnostics: %+v", diagnostics) + } +} diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest.go index 1727b7606..5fd8274e0 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest.go @@ -83,6 +83,7 @@ type OperatorVictoriametricsComVmserviceScrapeV1Beta1ManifestData struct { HonorLabels *bool `tfsdk:"honor_labels" json:"honorLabels,omitempty"` HonorTimestamps *bool `tfsdk:"honor_timestamps" json:"honorTimestamps,omitempty"` Interval *string `tfsdk:"interval" json:"interval,omitempty"` + Max_scrape_size *string `tfsdk:"max_scrape_size" json:"max_scrape_size,omitempty"` MetricRelabelConfigs *[]struct { Action *string `tfsdk:"action" json:"action,omitempty"` If *map[string]string `tfsdk:"if" json:"if,omitempty"` @@ -177,12 +178,11 @@ type OperatorVictoriametricsComVmserviceScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` Vm_scrape_params *struct { - Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` - Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Metric_relabel_debug *bool `tfsdk:"metric_relabel_debug" json:"metric_relabel_debug,omitempty"` - No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` - Proxy_client_config *struct { + Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` + Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` + Proxy_client_config *struct { Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -239,7 +239,6 @@ type OperatorVictoriametricsComVmserviceScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tls_config,omitempty"` } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` - Relabel_debug *bool `tfsdk:"relabel_debug" json:"relabel_debug,omitempty"` Scrape_align_interval *string `tfsdk:"scrape_align_interval" json:"scrape_align_interval,omitempty"` Scrape_offset *string `tfsdk:"scrape_offset" json:"scrape_offset,omitempty"` Stream_parse *bool `tfsdk:"stream_parse" json:"stream_parse,omitempty"` @@ -409,8 +408,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -451,12 +450,12 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "basic_auth": schema.SingleNestedAttribute{ - Description: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", - MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -467,8 +466,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -488,16 +487,16 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -508,8 +507,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -542,8 +541,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "bearer_token_secret": schema.SingleNestedAttribute{ - Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", - MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", + Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", + MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -554,8 +553,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -606,9 +605,17 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont Computed: false, }, + "max_scrape_size": schema.StringAttribute{ + Description: "MaxScrapeSize defines a maximum size of scraped data for a job", + MarkdownDescription: "MaxScrapeSize defines a maximum size of scraped data for a job", + Required: false, + Optional: true, + Computed: false, + }, + "metric_relabel_configs": schema.ListNestedAttribute{ - Description: "MetricRelabelConfigs to apply to samples before ingestion.", - MarkdownDescription: "MetricRelabelConfigs to apply to samples before ingestion.", + Description: "MetricRelabelConfigs to apply to samples after scrapping.", + MarkdownDescription: "MetricRelabelConfigs to apply to samples after scrapping.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -722,8 +729,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -755,8 +762,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -793,8 +800,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -873,8 +880,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "port": schema.StringAttribute{ - Description: "Name of the service port this endpoint refers to. Mutually exclusive with targetPort.", - MarkdownDescription: "Name of the service port this endpoint refers to. Mutually exclusive with targetPort.", + Description: "Name of the port exposed at Service.", + MarkdownDescription: "Name of the port exposed at Service.", Required: false, Optional: true, Computed: false, @@ -889,8 +896,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "relabel_configs": schema.ListNestedAttribute{ - Description: "RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", - MarkdownDescription: "RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", + Description: "RelabelConfigs to apply to samples during service discovery.", + MarkdownDescription: "RelabelConfigs to apply to samples during service discovery.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -984,8 +991,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "sample_limit": schema.Int64Attribute{ - Description: "SampleLimit defines per-endpoint limit on number of scraped samples that will be accepted.", - MarkdownDescription: "SampleLimit defines per-endpoint limit on number of scraped samples that will be accepted.", + Description: "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.", + MarkdownDescription: "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.", Required: false, Optional: true, Computed: false, @@ -1027,8 +1034,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "target_port": schema.StringAttribute{ - Description: "Name or number of the pod port this endpoint refers to. Mutually exclusive with port.", - MarkdownDescription: "Name or number of the pod port this endpoint refers to. Mutually exclusive with port.", + Description: "TargetPort Name or number of the pod port this endpoint refers to. Mutually exclusive with port.", + MarkdownDescription: "TargetPort Name or number of the pod port this endpoint refers to. Mutually exclusive with port.", Required: false, Optional: true, Computed: false, @@ -1055,8 +1062,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1088,8 +1095,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1138,8 +1145,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1171,8 +1178,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1233,8 +1240,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1271,16 +1278,16 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont MarkdownDescription: "VMScrapeParams defines VictoriaMetrics specific scrape parameters", Attributes: map[string]schema.Attribute{ "disable_compression": schema.BoolAttribute{ - Description: "", - MarkdownDescription: "", + Description: "DisableCompression", + MarkdownDescription: "DisableCompression", Required: false, Optional: true, Computed: false, }, "disable_keep_alive": schema.BoolAttribute{ - Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", - MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", + Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", + MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", Required: false, Optional: true, Computed: false, @@ -1295,14 +1302,6 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont Computed: false, }, - "metric_relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "no_stale_markers": schema.BoolAttribute{ Description: "", MarkdownDescription: "", @@ -1312,16 +1311,16 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "proxy_client_config": schema.SingleNestedAttribute{ - Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", - MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", + Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", Attributes: map[string]schema.Attribute{ "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1332,8 +1331,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1353,16 +1352,16 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1373,8 +1372,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1411,8 +1410,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1460,8 +1459,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1493,8 +1492,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1543,8 +1542,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1576,8 +1575,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1638,8 +1637,8 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1676,14 +1675,6 @@ func (r *OperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest) Schema(_ cont Computed: false, }, - "relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "scrape_align_interval": schema.StringAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_single_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_single_v1beta1_manifest.go index 7e1119863..20bc893d8 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_single_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_single_v1beta1_manifest.go @@ -43,10 +43,11 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { } `tfsdk:"metadata" json:"metadata"` Spec *struct { - Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` - ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` - Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` - DnsConfig *struct { + Affinity *map[string]string `tfsdk:"affinity" json:"affinity,omitempty"` + ConfigMaps *[]string `tfsdk:"config_maps" json:"configMaps,omitempty"` + Containers *[]map[string]string `tfsdk:"containers" json:"containers,omitempty"` + DisableSelfServiceScrape *bool `tfsdk:"disable_self_service_scrape" json:"disableSelfServiceScrape,omitempty"` + DnsConfig *struct { Nameservers *[]string `tfsdk:"nameservers" json:"nameservers,omitempty"` Options *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` @@ -61,8 +62,12 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` Ip *string `tfsdk:"ip" json:"ip,omitempty"` } `tfsdk:"host_aliases" json:"hostAliases,omitempty"` - HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` - Image *struct { + HostNetwork *bool `tfsdk:"host_network" json:"hostNetwork,omitempty"` + Host_aliases *[]struct { + Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` + Ip *string `tfsdk:"ip" json:"ip,omitempty"` + } `tfsdk:"host_aliases" json:"host_aliases,omitempty"` + Image *struct { PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` Repository *string `tfsdk:"repository" json:"repository,omitempty"` Tag *string `tfsdk:"tag" json:"tag,omitempty"` @@ -85,12 +90,13 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { Optional *bool `tfsdk:"optional" json:"optional,omitempty"` } `tfsdk:"key_ref" json:"keyRef,omitempty"` } `tfsdk:"license" json:"license,omitempty"` - LivenessProbe *map[string]string `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` - LogFormat *string `tfsdk:"log_format" json:"logFormat,omitempty"` - LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` - NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` - Paused *bool `tfsdk:"paused" json:"paused,omitempty"` - PodMetadata *struct { + LivenessProbe *map[string]string `tfsdk:"liveness_probe" json:"livenessProbe,omitempty"` + LogFormat *string `tfsdk:"log_format" json:"logFormat,omitempty"` + LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` + MinReadySeconds *int64 `tfsdk:"min_ready_seconds" json:"minReadySeconds,omitempty"` + NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` + Paused *bool `tfsdk:"paused" json:"paused,omitempty"` + PodMetadata *struct { Annotations *map[string]string `tfsdk:"annotations" json:"annotations,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` @@ -142,9 +148,6 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` } `tfsdk:"data_source_ref" json:"dataSourceRef,omitempty"` Resources *struct { - Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` - } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` @@ -156,9 +159,10 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { } `tfsdk:"match_expressions" json:"matchExpressions,omitempty"` MatchLabels *map[string]string `tfsdk:"match_labels" json:"matchLabels,omitempty"` } `tfsdk:"selector" json:"selector,omitempty"` - StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` - VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` - VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` + StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeAttributesClassName *string `tfsdk:"volume_attributes_class_name" json:"volumeAttributesClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` + VolumeName *string `tfsdk:"volume_name" json:"volumeName,omitempty"` } `tfsdk:"storage" json:"storage,omitempty"` StorageDataPath *string `tfsdk:"storage_data_path" json:"storageDataPath,omitempty"` StorageMetadata *struct { @@ -167,16 +171,25 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"storage_metadata" json:"storageMetadata,omitempty"` StreamAggrConfig *struct { - DedupInterval *string `tfsdk:"dedup_interval" json:"dedupInterval,omitempty"` - DropInput *bool `tfsdk:"drop_input" json:"dropInput,omitempty"` - KeepInput *bool `tfsdk:"keep_input" json:"keepInput,omitempty"` - Rules *[]struct { - By *[]string `tfsdk:"by" json:"by,omitempty"` - Dedup_interval *string `tfsdk:"dedup_interval" json:"dedup_interval,omitempty"` - Drop_input_labels *[]string `tfsdk:"drop_input_labels" json:"drop_input_labels,omitempty"` - Flush_on_shutdown *bool `tfsdk:"flush_on_shutdown" json:"flush_on_shutdown,omitempty"` - Ignore_old_samples *bool `tfsdk:"ignore_old_samples" json:"ignore_old_samples,omitempty"` - Input_relabel_configs *[]struct { + Configmap *struct { + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + } `tfsdk:"configmap" json:"configmap,omitempty"` + DedupInterval *string `tfsdk:"dedup_interval" json:"dedupInterval,omitempty"` + DropInput *bool `tfsdk:"drop_input" json:"dropInput,omitempty"` + DropInputLabels *[]string `tfsdk:"drop_input_labels" json:"dropInputLabels,omitempty"` + IgnoreFirstIntervals *int64 `tfsdk:"ignore_first_intervals" json:"ignoreFirstIntervals,omitempty"` + IgnoreOldSamples *bool `tfsdk:"ignore_old_samples" json:"ignoreOldSamples,omitempty"` + KeepInput *bool `tfsdk:"keep_input" json:"keepInput,omitempty"` + Rules *[]struct { + By *[]string `tfsdk:"by" json:"by,omitempty"` + Dedup_interval *string `tfsdk:"dedup_interval" json:"dedup_interval,omitempty"` + Drop_input_labels *[]string `tfsdk:"drop_input_labels" json:"drop_input_labels,omitempty"` + Flush_on_shutdown *bool `tfsdk:"flush_on_shutdown" json:"flush_on_shutdown,omitempty"` + Ignore_first_intervals *int64 `tfsdk:"ignore_first_intervals" json:"ignore_first_intervals,omitempty"` + Ignore_old_samples *bool `tfsdk:"ignore_old_samples" json:"ignore_old_samples,omitempty"` + Input_relabel_configs *[]struct { Action *string `tfsdk:"action" json:"action,omitempty"` If *map[string]string `tfsdk:"if" json:"if,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` @@ -218,6 +231,7 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"tolerations" json:"tolerations,omitempty"` TopologySpreadConstraints *[]map[string]string `tfsdk:"topology_spread_constraints" json:"topologySpreadConstraints,omitempty"` + UseDefaultResources *bool `tfsdk:"use_default_resources" json:"useDefaultResources,omitempty"` UseStrictSecurity *bool `tfsdk:"use_strict_security" json:"useStrictSecurity,omitempty"` VmBackup *struct { AcceptEULA *bool `tfsdk:"accept_eula" json:"acceptEULA,omitempty"` @@ -283,21 +297,23 @@ type OperatorVictoriametricsComVmsingleV1Beta1ManifestData struct { SnapshotCreateURL *string `tfsdk:"snapshot_create_url" json:"snapshotCreateURL,omitempty"` SnapshotDeleteURL *string `tfsdk:"snapshot_delete_url" json:"snapshotDeleteURL,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` } `tfsdk:"vm_backup" json:"vmBackup,omitempty"` VolumeMounts *[]struct { - MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` - MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` - SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` - SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` + MountPath *string `tfsdk:"mount_path" json:"mountPath,omitempty"` + MountPropagation *string `tfsdk:"mount_propagation" json:"mountPropagation,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + ReadOnly *bool `tfsdk:"read_only" json:"readOnly,omitempty"` + RecursiveReadOnly *string `tfsdk:"recursive_read_only" json:"recursiveReadOnly,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + SubPathExpr *string `tfsdk:"sub_path_expr" json:"subPathExpr,omitempty"` } `tfsdk:"volume_mounts" json:"volumeMounts,omitempty"` Volumes *[]map[string]string `tfsdk:"volumes" json:"volumes,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` @@ -390,8 +406,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "config_maps": schema.ListAttribute{ - Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMSingle object, which shall be mounted into the VMSingle Pods.", - MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the VMSingle object, which shall be mounted into the VMSingle Pods.", + Description: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", + MarkdownDescription: "ConfigMaps is a list of ConfigMaps in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/configs/CONFIGMAP_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -407,6 +423,14 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "disable_self_service_scrape": schema.BoolAttribute{ + Description: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + MarkdownDescription: "DisableSelfServiceScrape controls creation of VMServiceScrape by operator for the application. Has priority over 'VM_DISABLESELFSERVICESCRAPECREATION' operator env variable", + Required: false, + Optional: true, + Computed: false, + }, + "dns_config": schema.SingleNestedAttribute{ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", MarkdownDescription: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", @@ -470,8 +494,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "extra_args": schema.MapAttribute{ - Description: "ExtraArgs that will be passed to VMSingle pod for example remoteWrite.tmpDataPath: /tmp", - MarkdownDescription: "ExtraArgs that will be passed to VMSingle pod for example remoteWrite.tmpDataPath: /tmp", + Description: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", + MarkdownDescription: "ExtraArgs that will be passed to the application container for example remoteWrite.tmpDataPath: /tmp", ElementType: types.StringType, Required: false, Optional: true, @@ -479,8 +503,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "extra_envs": schema.ListAttribute{ - Description: "ExtraEnvs that will be added to VMSingle pod", - MarkdownDescription: "ExtraEnvs that will be added to VMSingle pod", + Description: "ExtraEnvs that will be passed to the application container", + MarkdownDescription: "ExtraEnvs that will be passed to the application container", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -504,8 +528,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con "ip": schema.StringAttribute{ Description: "IP address of the host file entry.", MarkdownDescription: "IP address of the host file entry.", - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, }, @@ -523,9 +547,37 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "host_aliases": schema.ListNestedAttribute{ + Description: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + MarkdownDescription: "HostAliasesUnderScore provides mapping for ip and hostname, that would be propagated to pod, cannot be used with HostNetwork. Has Priority over hostAliases field", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "hostnames": schema.ListAttribute{ + Description: "Hostnames for the above IP address.", + MarkdownDescription: "Hostnames for the above IP address.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ip": schema.StringAttribute{ + Description: "IP address of the host file entry.", + MarkdownDescription: "IP address of the host file entry.", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image": schema.SingleNestedAttribute{ - Description: "Image - docker image settings for VMSingle if no specified operator uses default config version", - MarkdownDescription: "Image - docker image settings for VMSingle if no specified operator uses default config version", + Description: "Image - docker image settings if no specified operator uses default version from operator config", + MarkdownDescription: "Image - docker image settings if no specified operator uses default version from operator config", Attributes: map[string]schema.Attribute{ "pull_policy": schema.StringAttribute{ Description: "PullPolicy describes how to pull docker image", @@ -562,8 +614,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -576,8 +628,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "init_containers": schema.ListAttribute{ - Description: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the vmSingle configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", - MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. fetch secrets for injection into the vmSingle configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ Using initContainers for any use case other then secret fetching is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.", + Description: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + MarkdownDescription: "InitContainers allows adding initContainers to the pod definition. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, @@ -626,12 +678,12 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "license": schema.SingleNestedAttribute{ - Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", - MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See: https://docs.victoriametrics.com/enterprise.html", + Description: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", + MarkdownDescription: "License allows to configure license key to be used for enterprise features. Using license key is supported starting from VictoriaMetrics v1.94.0. See [here](https://docs.victoriametrics.com/enterprise)", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", - MarkdownDescription: "Enterprise license key. This flag is available only in VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/", + Description: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", + MarkdownDescription: "Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise). To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial)", Required: false, Optional: true, Computed: false, @@ -650,8 +702,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -706,6 +758,14 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, }, + "min_ready_seconds": schema.Int64Attribute{ + Description: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + MarkdownDescription: "MinReadySeconds defines a minim number os seconds to wait before starting update next pod if previous in healthy state Has no effect for VLogs and VMSingle", + Required: false, + Optional: true, + Computed: false, + }, + "node_selector": schema.MapAttribute{ Description: "NodeSelector Define which Nodes the Pods are scheduled on.", MarkdownDescription: "NodeSelector Define which Nodes the Pods are scheduled on.", @@ -759,16 +819,16 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "port": schema.StringAttribute{ - Description: "Port listen port", - MarkdownDescription: "Port listen port", + Description: "Port listen address", + MarkdownDescription: "Port listen address", Required: false, Optional: true, Computed: false, }, "priority_class_name": schema.StringAttribute{ - Description: "PriorityClassName assigned to the Pods", - MarkdownDescription: "PriorityClassName assigned to the Pods", + Description: "PriorityClassName class assigned to the Pods", + MarkdownDescription: "PriorityClassName class assigned to the Pods", Required: false, Optional: true, Computed: false, @@ -803,16 +863,16 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "remove_pvc_after_delete": schema.BoolAttribute{ - Description: "RemovePvcAfterDelete - if true, controller adds ownership to pvc and after VMSingle objest deletion - pvc will be garbage collected by controller manager", - MarkdownDescription: "RemovePvcAfterDelete - if true, controller adds ownership to pvc and after VMSingle objest deletion - pvc will be garbage collected by controller manager", + Description: "RemovePvcAfterDelete - if true, controller adds ownership to pvc and after VMSingle object deletion - pvc will be garbage collected by controller manager", + MarkdownDescription: "RemovePvcAfterDelete - if true, controller adds ownership to pvc and after VMSingle object deletion - pvc will be garbage collected by controller manager", Required: false, Optional: true, Computed: false, }, "replica_count": schema.Int64Attribute{ - Description: "ReplicaCount is the expected size of the VMSingle it can be 0 or 1 if you need more - use vm cluster", - MarkdownDescription: "ReplicaCount is the expected size of the VMSingle it can be 0 or 1 if you need more - use vm cluster", + Description: "ReplicaCount is the expected size of the Application.", + MarkdownDescription: "ReplicaCount is the expected size of the Application.", Required: false, Optional: true, Computed: false, @@ -865,16 +925,16 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "retention_period": schema.StringAttribute{ - Description: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured retention period https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#retention", - MarkdownDescription: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured retention period https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#retention", + Description: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured [retention period](https://docs.victoriametrics.com/Single-server-VictoriaMetrics/#retention)", + MarkdownDescription: "RetentionPeriod for the stored metrics Note VictoriaMetrics has data/ and indexdb/ folders metrics from data/ removed eventually as soon as partition leaves retention period reverse index data at indexdb rotates once at the half of configured [retention period](https://docs.victoriametrics.com/Single-server-VictoriaMetrics/#retention)", Required: true, Optional: false, Computed: false, }, "revision_history_limit_count": schema.Int64Attribute{ - Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", - MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the StatefulSet's revision history. Defaults to 10.", + Description: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", + MarkdownDescription: "The number of old ReplicaSets to retain to allow rollback in deployment or maximum number of revisions that will be maintained in the Deployment revision history. Has no effect at StatefulSets Defaults to 10.", Required: false, Optional: true, Computed: false, @@ -897,8 +957,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "secrets": schema.ListAttribute{ - Description: "Secrets is a list of Secrets in the same namespace as the VMSingle object, which shall be mounted into the VMSingle Pods.", - MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the VMSingle object, which shall be mounted into the VMSingle Pods.", + Description: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", + MarkdownDescription: "Secrets is a list of Secrets in the same namespace as the Application object, which shall be mounted into the Application container at /etc/vm/secrets/SECRET_NAME folder", ElementType: types.StringType, Required: false, Optional: true, @@ -915,8 +975,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "service_account_name": schema.StringAttribute{ - Description: "ServiceAccountName is the name of the ServiceAccount to use to run the VMSingle Pods.", - MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the VMSingle Pods.", + Description: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", + MarkdownDescription: "ServiceAccountName is the name of the ServiceAccount to use to run the pods", Required: false, Optional: true, Computed: false, @@ -1092,25 +1152,6 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", MarkdownDescription: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", Attributes: map[string]schema.Attribute{ - "claims": schema.ListNestedAttribute{ - Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - MarkdownDescription: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.", - NestedObject: schema.NestedAttributeObject{ - Attributes: map[string]schema.Attribute{ - "name": schema.StringAttribute{ - Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - MarkdownDescription: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", - Required: true, - Optional: false, - Computed: false, - }, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - "limits": schema.MapAttribute{ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", MarkdownDescription: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", @@ -1196,6 +1237,14 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "volume_attributes_class_name": schema.StringAttribute{ + Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + MarkdownDescription: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + Required: false, + Optional: true, + Computed: false, + }, + "volume_mode": schema.StringAttribute{ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", MarkdownDescription: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", @@ -1264,6 +1313,39 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Description: "StreamAggrConfig defines stream aggregation configuration for VMSingle", MarkdownDescription: "StreamAggrConfig defines stream aggregation configuration for VMSingle", Attributes: map[string]schema.Attribute{ + "configmap": schema.SingleNestedAttribute{ + Description: "ConfigMap with stream aggregation rules", + MarkdownDescription: "ConfigMap with stream aggregation rules", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Description: "The key to select.", + MarkdownDescription: "The key to select.", + Required: true, + Optional: false, + Computed: false, + }, + + "name": schema.StringAttribute{ + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Required: false, + Optional: true, + Computed: false, + }, + + "optional": schema.BoolAttribute{ + Description: "Specify whether the ConfigMap or its key must be defined", + MarkdownDescription: "Specify whether the ConfigMap or its key must be defined", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "dedup_interval": schema.StringAttribute{ Description: "Allows setting different de-duplication intervals per each configured remote storage", MarkdownDescription: "Allows setting different de-duplication intervals per each configured remote storage", @@ -1280,6 +1362,31 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "drop_input_labels": schema.ListAttribute{ + Description: "labels to drop from samples for aggregator before stream de-duplication and aggregation", + MarkdownDescription: "labels to drop from samples for aggregator before stream de-duplication and aggregation", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_first_intervals": schema.Int64Attribute{ + Description: "IgnoreFirstIntervals instructs to ignore first interval", + MarkdownDescription: "IgnoreFirstIntervals instructs to ignore first interval", + Required: false, + Optional: true, + Computed: false, + }, + + "ignore_old_samples": schema.BoolAttribute{ + Description: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + MarkdownDescription: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", + Required: false, + Optional: true, + Computed: false, + }, + "keep_input": schema.BoolAttribute{ Description: "Allows writing both raw and aggregate data", MarkdownDescription: "Allows writing both raw and aggregate data", @@ -1327,6 +1434,14 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "ignore_first_intervals": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "ignore_old_samples": schema.BoolAttribute{ Description: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", MarkdownDescription: "IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval.", @@ -1585,8 +1700,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, }, }, - Required: true, - Optional: false, + Required: false, + Optional: true, Computed: false, }, }, @@ -1663,6 +1778,14 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "use_default_resources": schema.BoolAttribute{ + Description: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + MarkdownDescription: "UseDefaultResources controls resource settings By default, operator sets built-in resource requirements", + Required: false, + Optional: true, + Computed: false, + }, + "use_strict_security": schema.BoolAttribute{ Description: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", MarkdownDescription: "UseStrictSecurity enables strict security mode for component it restricts disk writes access uses non-root user out of the box drops not needed security permissions", @@ -1704,8 +1827,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1827,8 +1950,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1918,8 +2041,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -2059,8 +2182,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "restore": schema.SingleNestedAttribute{ - Description: "Restore Allows to enable restore options for pod Read more: https://docs.victoriametrics.com/vmbackupmanager.html#restore-commands", - MarkdownDescription: "Restore Allows to enable restore options for pod Read more: https://docs.victoriametrics.com/vmbackupmanager.html#restore-commands", + Description: "Restore Allows to enable restore options for pod Read [more](https://docs.victoriametrics.com/vmbackupmanager#restore-commands)", + MarkdownDescription: "Restore Allows to enable restore options for pod Read [more](https://docs.victoriametrics.com/vmbackupmanager#restore-commands)", Attributes: map[string]schema.Attribute{ "on_start": schema.SingleNestedAttribute{ Description: "OnStart defines configuration for restore on pod start", @@ -2114,8 +2237,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -2137,6 +2260,14 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -2165,8 +2296,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "volume_mounts": schema.ListNestedAttribute{ - Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMSingle container, that are generated as a result of StorageSpec objects.", - MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. VolumeMounts specified will be appended to other VolumeMounts in the VMSingle container, that are generated as a result of StorageSpec objects.", + Description: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", + MarkdownDescription: "VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the Application container", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "mount_path": schema.StringAttribute{ @@ -2178,8 +2309,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "mount_propagation": schema.StringAttribute{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", + MarkdownDescription: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", Required: false, Optional: true, Computed: false, @@ -2201,6 +2332,14 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con Computed: false, }, + "recursive_read_only": schema.StringAttribute{ + Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + MarkdownDescription: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.", + Required: false, + Optional: true, + Computed: false, + }, + "sub_path": schema.StringAttribute{ Description: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", MarkdownDescription: "Path within the volume from which the container's volume should be mounted. Defaults to '' (volume's root).", @@ -2224,8 +2363,8 @@ func (r *OperatorVictoriametricsComVmsingleV1Beta1Manifest) Schema(_ context.Con }, "volumes": schema.ListAttribute{ - Description: "Volumes allows configuration of additional volumes on the output deploy definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", - MarkdownDescription: "Volumes allows configuration of additional volumes on the output deploy definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.", + Description: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", + MarkdownDescription: "Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition. Volumes specified will be appended to other volumes that are generated. / +optional", ElementType: types.MapType{ElemType: types.StringType}, Required: false, Optional: true, diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest.go index 28e241b04..c732a0492 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest.go @@ -80,6 +80,7 @@ type OperatorVictoriametricsComVmstaticScrapeV1Beta1ManifestData struct { HonorTimestamps *bool `tfsdk:"honor_timestamps" json:"honorTimestamps,omitempty"` Interval *string `tfsdk:"interval" json:"interval,omitempty"` Labels *map[string]string `tfsdk:"labels" json:"labels,omitempty"` + Max_scrape_size *string `tfsdk:"max_scrape_size" json:"max_scrape_size,omitempty"` MetricRelabelConfigs *[]struct { Action *string `tfsdk:"action" json:"action,omitempty"` If *map[string]string `tfsdk:"if" json:"if,omitempty"` @@ -117,7 +118,6 @@ type OperatorVictoriametricsComVmstaticScrapeV1Beta1ManifestData struct { } `tfsdk:"oauth2" json:"oauth2,omitempty"` Params *map[string][]string `tfsdk:"params" json:"params,omitempty"` Path *string `tfsdk:"path" json:"path,omitempty"` - Port *string `tfsdk:"port" json:"port,omitempty"` ProxyURL *string `tfsdk:"proxy_url" json:"proxyURL,omitempty"` RelabelConfigs *[]struct { Action *string `tfsdk:"action" json:"action,omitempty"` @@ -174,12 +174,11 @@ type OperatorVictoriametricsComVmstaticScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tlsConfig,omitempty"` Vm_scrape_params *struct { - Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` - Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` - Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` - Metric_relabel_debug *bool `tfsdk:"metric_relabel_debug" json:"metric_relabel_debug,omitempty"` - No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` - Proxy_client_config *struct { + Disable_compression *bool `tfsdk:"disable_compression" json:"disable_compression,omitempty"` + Disable_keep_alive *bool `tfsdk:"disable_keep_alive" json:"disable_keep_alive,omitempty"` + Headers *[]string `tfsdk:"headers" json:"headers,omitempty"` + No_stale_markers *bool `tfsdk:"no_stale_markers" json:"no_stale_markers,omitempty"` + Proxy_client_config *struct { Basic_auth *struct { Password *struct { Key *string `tfsdk:"key" json:"key,omitempty"` @@ -236,7 +235,6 @@ type OperatorVictoriametricsComVmstaticScrapeV1Beta1ManifestData struct { ServerName *string `tfsdk:"server_name" json:"serverName,omitempty"` } `tfsdk:"tls_config" json:"tls_config,omitempty"` } `tfsdk:"proxy_client_config" json:"proxy_client_config,omitempty"` - Relabel_debug *bool `tfsdk:"relabel_debug" json:"relabel_debug,omitempty"` Scrape_align_interval *string `tfsdk:"scrape_align_interval" json:"scrape_align_interval,omitempty"` Scrape_offset *string `tfsdk:"scrape_offset" json:"scrape_offset,omitempty"` Stream_parse *bool `tfsdk:"stream_parse" json:"stream_parse,omitempty"` @@ -368,8 +366,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -410,12 +408,12 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "basic_auth": schema.SingleNestedAttribute{ - Description: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", - MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints", + Description: "BasicAuth allow an endpoint to authenticate over basic authentication", + MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -426,8 +424,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -447,16 +445,16 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -467,8 +465,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -501,8 +499,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "bearer_token_secret": schema.SingleNestedAttribute{ - Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", - MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service scrape and accessible by the victoria-metrics operator.", + Description: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", + MarkdownDescription: "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the scrape object and accessible by the victoria-metrics operator.", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -513,8 +511,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -574,9 +572,17 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte Computed: false, }, + "max_scrape_size": schema.StringAttribute{ + Description: "MaxScrapeSize defines a maximum size of scraped data for a job", + MarkdownDescription: "MaxScrapeSize defines a maximum size of scraped data for a job", + Required: false, + Optional: true, + Computed: false, + }, + "metric_relabel_configs": schema.ListNestedAttribute{ - Description: "MetricRelabelConfigs to apply to samples before ingestion.", - MarkdownDescription: "MetricRelabelConfigs to apply to samples before ingestion.", + Description: "MetricRelabelConfigs to apply to samples after scrapping.", + MarkdownDescription: "MetricRelabelConfigs to apply to samples after scrapping.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -690,8 +696,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -723,8 +729,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -761,8 +767,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -840,14 +846,6 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte Computed: false, }, - "port": schema.StringAttribute{ - Description: "Default port for target.", - MarkdownDescription: "Default port for target.", - Required: false, - Optional: true, - Computed: false, - }, - "proxy_url": schema.StringAttribute{ Description: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", MarkdownDescription: "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.", @@ -857,8 +855,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "relabel_configs": schema.ListNestedAttribute{ - Description: "RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", - MarkdownDescription: "RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config", + Description: "RelabelConfigs to apply to samples during service discovery.", + MarkdownDescription: "RelabelConfigs to apply to samples during service discovery.", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "action": schema.StringAttribute{ @@ -1024,8 +1022,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1057,8 +1055,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1107,8 +1105,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1140,8 +1138,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1202,8 +1200,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1240,16 +1238,16 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte MarkdownDescription: "VMScrapeParams defines VictoriaMetrics specific scrape parameters", Attributes: map[string]schema.Attribute{ "disable_compression": schema.BoolAttribute{ - Description: "", - MarkdownDescription: "", + Description: "DisableCompression", + MarkdownDescription: "DisableCompression", Required: false, Optional: true, Computed: false, }, "disable_keep_alive": schema.BoolAttribute{ - Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", - MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements", + Description: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", + MarkdownDescription: "disable_keepalive allows disabling HTTP keep-alive when scraping targets. By default, HTTP keep-alive is enabled, so TCP connections to scrape targets could be re-used. See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements", Required: false, Optional: true, Computed: false, @@ -1264,14 +1262,6 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte Computed: false, }, - "metric_relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "no_stale_markers": schema.BoolAttribute{ Description: "", MarkdownDescription: "", @@ -1281,16 +1271,16 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "proxy_client_config": schema.SingleNestedAttribute{ - Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", - MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy", + Description: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", + MarkdownDescription: "ProxyClientConfig configures proxy auth settings for scraping See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy", Attributes: map[string]schema.Attribute{ "basic_auth": schema.SingleNestedAttribute{ Description: "BasicAuth allow an endpoint to authenticate over basic authentication", MarkdownDescription: "BasicAuth allow an endpoint to authenticate over basic authentication", Attributes: map[string]schema.Attribute{ "password": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the password for authentication. It must be at them same namespace as CRD", + Description: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Password defines reference for secret with password value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1301,8 +1291,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1322,16 +1312,16 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "password_file": schema.StringAttribute{ - Description: "PasswordFile defines path to password file at disk", - MarkdownDescription: "PasswordFile defines path to password file at disk", + Description: "PasswordFile defines path to password file at disk must be pre-mounted", + MarkdownDescription: "PasswordFile defines path to password file at disk must be pre-mounted", Required: false, Optional: true, Computed: false, }, "username": schema.SingleNestedAttribute{ - Description: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", - MarkdownDescription: "The secret in the service scrape namespace that contains the username for authentication. It must be at them same namespace as CRD", + Description: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", + MarkdownDescription: "Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ Description: "The key of the secret to select from. Must be a valid secret key.", @@ -1342,8 +1332,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1380,8 +1370,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1429,8 +1419,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1462,8 +1452,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1512,8 +1502,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1545,8 +1535,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1607,8 +1597,8 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -1645,14 +1635,6 @@ func (r *OperatorVictoriametricsComVmstaticScrapeV1Beta1Manifest) Schema(_ conte Computed: false, }, - "relabel_debug": schema.BoolAttribute{ - Description: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - MarkdownDescription: "deprecated since [v1.85](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.85.0), will be removed in next release", - Required: false, - Optional: true, - Computed: false, - }, - "scrape_align_interval": schema.StringAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_user_v1beta1_manifest.go b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_user_v1beta1_manifest.go index 2222b3939..4aa06fedf 100644 --- a/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_user_v1beta1_manifest.go +++ b/internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_user_v1beta1_manifest.go @@ -256,8 +256,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "drop_src_path_prefix_parts": schema.Int64Attribute{ - Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", - MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", + Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", + MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", Required: false, Optional: true, Computed: false, @@ -281,8 +281,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "ip_filters": schema.SingleNestedAttribute{ - Description: "IPFilters defines per target src ip filters supported only with enterprise version of vmauth https://docs.victoriametrics.com/vmauth.html#ip-filters", - MarkdownDescription: "IPFilters defines per target src ip filters supported only with enterprise version of vmauth https://docs.victoriametrics.com/vmauth.html#ip-filters", + Description: "IPFilters defines per target src ip filters supported only with enterprise version of [vmauth](https://docs.victoriametrics.com/vmauth/#ip-filters)", + MarkdownDescription: "IPFilters defines per target src ip filters supported only with enterprise version of [vmauth](https://docs.victoriametrics.com/vmauth/#ip-filters)", Attributes: map[string]schema.Attribute{ "allow_list": schema.ListAttribute{ Description: "", @@ -308,8 +308,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "load_balancing_policy": schema.StringAttribute{ - Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", - MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", + Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", + MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", Required: false, Optional: true, Computed: false, @@ -364,8 +364,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -412,11 +412,14 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte MarkdownDescription: "CRD describes exist operator's CRD object, operator generates access url based on CRD params.", Attributes: map[string]schema.Attribute{ "kind": schema.StringAttribute{ - Description: "Kind one of: VMAgent VMAlert VMCluster VMSingle or VMAlertManager", - MarkdownDescription: "Kind one of: VMAgent VMAlert VMCluster VMSingle or VMAlertManager", + Description: "Kind one of: VMAgent,VMAlert, VMSingle, VMCluster/vmselect, VMCluster/vmstorage,VMCluster/vminsert or VMAlertManager", + MarkdownDescription: "Kind one of: VMAgent,VMAlert, VMSingle, VMCluster/vmselect, VMCluster/vmstorage,VMCluster/vminsert or VMAlertManager", Required: true, Optional: false, Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("VMAgent", "VMAlert", "VMSingle", "VMAlertManager", "VMAlertmanager", "VMCluster/vmselect", "VMCluster/vmstorage", "VMCluster/vminsert"), + }, }, "name": schema.StringAttribute{ @@ -449,8 +452,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "drop_src_path_prefix_parts": schema.Int64Attribute{ - Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", - MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See https://docs.victoriametrics.com/vmauth.html#dropping-request-path-prefix for more details.", + Description: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", + MarkdownDescription: "DropSrcPathPrefixParts is the number of '/'-delimited request path prefix parts to drop before proxying the request to backend. See [here](https://docs.victoriametrics.com/vmauth#dropping-request-path-prefix) for more details.", Required: false, Optional: true, Computed: false, @@ -475,8 +478,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "load_balancing_policy": schema.StringAttribute{ - Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", - MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See https://docs.victoriametrics.com/vmauth.html#load-balancing for more details (default 'least_loaded')", + Description: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", + MarkdownDescription: "LoadBalancingPolicy defines load balancing policy to use for backend urls. Supported policies: least_loaded, first_available. See [here](https://docs.victoriametrics.com/vmauth#load-balancing) for more details (default 'least_loaded')", Required: false, Optional: true, Computed: false, @@ -573,8 +576,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -606,8 +609,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -666,8 +669,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -699,8 +702,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -749,8 +752,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -782,8 +785,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -844,8 +847,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, @@ -890,8 +893,8 @@ func (r *OperatorVictoriametricsComVmuserV1Beta1Manifest) Schema(_ context.Conte }, "name": schema.StringAttribute{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", - MarkdownDescription: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/org_eclipse_che_v2/org_eclipse_che_che_cluster_v2_manifest.go b/internal/provider/org_eclipse_che_v2/org_eclipse_che_che_cluster_v2_manifest.go index 6ff3f6552..2eede346d 100644 --- a/internal/provider/org_eclipse_che_v2/org_eclipse_che_che_cluster_v2_manifest.go +++ b/internal/provider/org_eclipse_che_v2/org_eclipse_che_che_cluster_v2_manifest.go @@ -90,10 +90,18 @@ type OrgEclipseCheCheClusterV2ManifestData struct { } `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` } `tfsdk:"containers" json:"containers,omitempty"` + NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` SecurityContext *struct { FsGroup *int64 `tfsdk:"fs_group" json:"fsGroup,omitempty"` RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` + Tolerations *[]struct { + Effect *string `tfsdk:"effect" json:"effect,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"tolerations" json:"tolerations,omitempty"` } `tfsdk:"deployment" json:"deployment,omitempty"` ExtraProperties *map[string]string `tfsdk:"extra_properties" json:"extraProperties,omitempty"` LogLevel *string `tfsdk:"log_level" json:"logLevel,omitempty"` @@ -152,10 +160,18 @@ type OrgEclipseCheCheClusterV2ManifestData struct { } `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` } `tfsdk:"containers" json:"containers,omitempty"` + NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` SecurityContext *struct { FsGroup *int64 `tfsdk:"fs_group" json:"fsGroup,omitempty"` RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` + Tolerations *[]struct { + Effect *string `tfsdk:"effect" json:"effect,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"tolerations" json:"tolerations,omitempty"` } `tfsdk:"deployment" json:"deployment,omitempty"` HeaderMessage *struct { Show *bool `tfsdk:"show" json:"show,omitempty"` @@ -208,10 +224,18 @@ type OrgEclipseCheCheClusterV2ManifestData struct { } `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` } `tfsdk:"containers" json:"containers,omitempty"` + NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` SecurityContext *struct { FsGroup *int64 `tfsdk:"fs_group" json:"fsGroup,omitempty"` RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` + Tolerations *[]struct { + Effect *string `tfsdk:"effect" json:"effect,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"tolerations" json:"tolerations,omitempty"` } `tfsdk:"deployment" json:"deployment,omitempty"` DisableInternalRegistry *bool `tfsdk:"disable_internal_registry" json:"disableInternalRegistry,omitempty"` ExternalDevfileRegistries *[]struct { @@ -281,10 +305,18 @@ type OrgEclipseCheCheClusterV2ManifestData struct { } `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` } `tfsdk:"containers" json:"containers,omitempty"` + NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` SecurityContext *struct { FsGroup *int64 `tfsdk:"fs_group" json:"fsGroup,omitempty"` RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` + Tolerations *[]struct { + Effect *string `tfsdk:"effect" json:"effect,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"tolerations" json:"tolerations,omitempty"` } `tfsdk:"deployment" json:"deployment,omitempty"` DisableInternalRegistry *bool `tfsdk:"disable_internal_registry" json:"disableInternalRegistry,omitempty"` ExternalPluginRegistries *[]struct { @@ -823,10 +855,18 @@ type OrgEclipseCheCheClusterV2ManifestData struct { } `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` } `tfsdk:"containers" json:"containers,omitempty"` + NodeSelector *map[string]string `tfsdk:"node_selector" json:"nodeSelector,omitempty"` SecurityContext *struct { FsGroup *int64 `tfsdk:"fs_group" json:"fsGroup,omitempty"` RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` } `tfsdk:"security_context" json:"securityContext,omitempty"` + Tolerations *[]struct { + Effect *string `tfsdk:"effect" json:"effect,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + TolerationSeconds *int64 `tfsdk:"toleration_seconds" json:"tolerationSeconds,omitempty"` + Value *string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"tolerations" json:"tolerations,omitempty"` } `tfsdk:"deployment" json:"deployment,omitempty"` KubeRbacProxy *struct { LogLevel *int64 `tfsdk:"log_level" json:"logLevel,omitempty"` @@ -1218,6 +1258,15 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Computed: false, }, + "node_selector": schema.MapAttribute{ + Description: "The node selector limits the nodes that can run the pod.", + MarkdownDescription: "The node selector limits the nodes that can run the pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "security_context": schema.SingleNestedAttribute{ Description: "Security options the pod should run with.", MarkdownDescription: "Security options the pod should run with.", @@ -1242,6 +1291,57 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Optional: true, Computed: false, }, + + "tolerations": schema.ListNestedAttribute{ + Description: "The pod tolerations of the component pod limit where the pod can run.", + MarkdownDescription: "The pod tolerations of the component pod limit where the pod can run.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -1611,6 +1711,15 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Computed: false, }, + "node_selector": schema.MapAttribute{ + Description: "The node selector limits the nodes that can run the pod.", + MarkdownDescription: "The node selector limits the nodes that can run the pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "security_context": schema.SingleNestedAttribute{ Description: "Security options the pod should run with.", MarkdownDescription: "Security options the pod should run with.", @@ -1635,6 +1744,57 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Optional: true, Computed: false, }, + + "tolerations": schema.ListNestedAttribute{ + Description: "The pod tolerations of the component pod limit where the pod can run.", + MarkdownDescription: "The pod tolerations of the component pod limit where the pod can run.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -1964,6 +2124,15 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Computed: false, }, + "node_selector": schema.MapAttribute{ + Description: "The node selector limits the nodes that can run the pod.", + MarkdownDescription: "The node selector limits the nodes that can run the pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "security_context": schema.SingleNestedAttribute{ Description: "Security options the pod should run with.", MarkdownDescription: "Security options the pod should run with.", @@ -1988,6 +2157,57 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Optional: true, Computed: false, }, + + "tolerations": schema.ListNestedAttribute{ + Description: "The pod tolerations of the component pod limit where the pod can run.", + MarkdownDescription: "The pod tolerations of the component pod limit where the pod can run.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -2438,6 +2658,15 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Computed: false, }, + "node_selector": schema.MapAttribute{ + Description: "The node selector limits the nodes that can run the pod.", + MarkdownDescription: "The node selector limits the nodes that can run the pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "security_context": schema.SingleNestedAttribute{ Description: "Security options the pod should run with.", MarkdownDescription: "Security options the pod should run with.", @@ -2462,6 +2691,57 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Optional: true, Computed: false, }, + + "tolerations": schema.ListNestedAttribute{ + Description: "The pod tolerations of the component pod limit where the pod can run.", + MarkdownDescription: "The pod tolerations of the component pod limit where the pod can run.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -6273,6 +6553,15 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Computed: false, }, + "node_selector": schema.MapAttribute{ + Description: "The node selector limits the nodes that can run the pod.", + MarkdownDescription: "The node selector limits the nodes that can run the pod.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "security_context": schema.SingleNestedAttribute{ Description: "Security options the pod should run with.", MarkdownDescription: "Security options the pod should run with.", @@ -6297,6 +6586,57 @@ func (r *OrgEclipseCheCheClusterV2Manifest) Schema(_ context.Context, _ datasour Optional: true, Computed: false, }, + + "tolerations": schema.ListNestedAttribute{ + Description: "The pod tolerations of the component pod limit where the pod can run.", + MarkdownDescription: "The pod tolerations of the component pod limit where the pod can run.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "effect": schema.StringAttribute{ + Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + MarkdownDescription: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + Required: false, + Optional: true, + Computed: false, + }, + + "key": schema.StringAttribute{ + Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + MarkdownDescription: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + Required: false, + Optional: true, + Computed: false, + }, + + "operator": schema.StringAttribute{ + Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + MarkdownDescription: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + Required: false, + Optional: true, + Computed: false, + }, + + "toleration_seconds": schema.Int64Attribute{ + Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + MarkdownDescription: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + Required: false, + Optional: true, + Computed: false, + }, + + "value": schema.StringAttribute{ + Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + MarkdownDescription: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, diff --git a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_override_policy_v1alpha1_manifest.go b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_override_policy_v1alpha1_manifest.go index 30a0d27ee..4b9f60f5a 100644 --- a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_override_policy_v1alpha1_manifest.go +++ b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_override_policy_v1alpha1_manifest.go @@ -58,6 +58,19 @@ type PolicyKarmadaIoClusterOverridePolicyV1Alpha1ManifestData struct { Operator *string `tfsdk:"operator" json:"operator,omitempty"` Value *[]string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"command_overrider" json:"commandOverrider,omitempty"` + FieldOverrider *[]struct { + FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` + Json *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"json" json:"json,omitempty"` + Yaml *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"yaml" json:"yaml,omitempty"` + } `tfsdk:"field_overrider" json:"fieldOverrider,omitempty"` ImageOverrider *[]struct { Component *string `tfsdk:"component" json:"component,omitempty"` Operator *string `tfsdk:"operator" json:"operator,omitempty"` @@ -111,6 +124,19 @@ type PolicyKarmadaIoClusterOverridePolicyV1Alpha1ManifestData struct { Operator *string `tfsdk:"operator" json:"operator,omitempty"` Value *[]string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"command_overrider" json:"commandOverrider,omitempty"` + FieldOverrider *[]struct { + FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` + Json *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"json" json:"json,omitempty"` + Yaml *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"yaml" json:"yaml,omitempty"` + } `tfsdk:"field_overrider" json:"fieldOverrider,omitempty"` ImageOverrider *[]struct { Component *string `tfsdk:"component" json:"component,omitempty"` Operator *string `tfsdk:"operator" json:"operator,omitempty"` @@ -348,6 +374,103 @@ func (r *PolicyKarmadaIoClusterOverridePolicyV1Alpha1Manifest) Schema(_ context. Computed: false, }, + "field_overrider": schema.ListNestedAttribute{ + Description: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + MarkdownDescription: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "field_path": schema.StringAttribute{ + Description: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + MarkdownDescription: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + Required: true, + Optional: false, + Computed: false, + }, + + "json": schema.ListNestedAttribute{ + Description: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + MarkdownDescription: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "yaml": schema.ListNestedAttribute{ + Description: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + MarkdownDescription: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image_overrider": schema.ListNestedAttribute{ Description: "ImageOverrider represents the rules dedicated to handling image overrides.", MarkdownDescription: "ImageOverrider represents the rules dedicated to handling image overrides.", @@ -726,6 +849,103 @@ func (r *PolicyKarmadaIoClusterOverridePolicyV1Alpha1Manifest) Schema(_ context. Computed: false, }, + "field_overrider": schema.ListNestedAttribute{ + Description: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + MarkdownDescription: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "field_path": schema.StringAttribute{ + Description: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + MarkdownDescription: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + Required: true, + Optional: false, + Computed: false, + }, + + "json": schema.ListNestedAttribute{ + Description: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + MarkdownDescription: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "yaml": schema.ListNestedAttribute{ + Description: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + MarkdownDescription: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image_overrider": schema.ListNestedAttribute{ Description: "ImageOverrider represents the rules dedicated to handling image overrides.", MarkdownDescription: "ImageOverrider represents the rules dedicated to handling image overrides.", diff --git a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest.go b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest.go index 21c0b1fd1..48b180156 100644 --- a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest.go +++ b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest.go @@ -139,10 +139,11 @@ type PolicyKarmadaIoClusterPropagationPolicyV1Alpha1ManifestData struct { SpreadByLabel *string `tfsdk:"spread_by_label" json:"spreadByLabel,omitempty"` } `tfsdk:"spread_constraints" json:"spreadConstraints,omitempty"` } `tfsdk:"placement" json:"placement,omitempty"` - Preemption *string `tfsdk:"preemption" json:"preemption,omitempty"` - Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` - PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` - ResourceSelectors *[]struct { + Preemption *string `tfsdk:"preemption" json:"preemption,omitempty"` + PreserveResourcesOnDeletion *bool `tfsdk:"preserve_resources_on_deletion" json:"preserveResourcesOnDeletion,omitempty"` + Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` + PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` + ResourceSelectors *[]struct { ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` Kind *string `tfsdk:"kind" json:"kind,omitempty"` LabelSelector *struct { @@ -906,6 +907,14 @@ func (r *PolicyKarmadaIoClusterPropagationPolicyV1Alpha1Manifest) Schema(_ conte }, }, + "preserve_resources_on_deletion": schema.BoolAttribute{ + Description: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the resource template is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the resource template. This setting is particularly useful during workload migration scenarios to ensure that rollback can occur quickly without affecting the workloads running on the member clusters. Additionally, this setting applies uniformly across all member clusters and will not selectively control preservation on only some clusters. Note: This setting does not apply to the deletion of the policy itself. When the policy is deleted, the resource templates and their corresponding propagated resources in member clusters will remain unchanged unless explicitly deleted.", + MarkdownDescription: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the resource template is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the resource template. This setting is particularly useful during workload migration scenarios to ensure that rollback can occur quickly without affecting the workloads running on the member clusters. Additionally, this setting applies uniformly across all member clusters and will not selectively control preservation on only some clusters. Note: This setting does not apply to the deletion of the policy itself. When the policy is deleted, the resource templates and their corresponding propagated resources in member clusters will remain unchanged unless explicitly deleted.", + Required: false, + Optional: true, + Computed: false, + }, + "priority": schema.Int64Attribute{ Description: "Priority indicates the importance of a policy(PropagationPolicy or ClusterPropagationPolicy). A policy will be applied for the matched resource templates if there is no other policies with higher priority at the point of the resource template be processed. Once a resource template has been claimed by a policy, by default it will not be preempted by following policies even with a higher priority. See Preemption for more details. In case of two policies have the same priority, the one with a more precise matching rules in ResourceSelectors wins: - matching by name(resourceSelector.name) has higher priority than by selector(resourceSelector.labelSelector) - matching by selector(resourceSelector.labelSelector) has higher priority than by APIVersion(resourceSelector.apiVersion) and Kind(resourceSelector.kind). If there is still no winner at this point, the one with the lower alphabetic order wins, e.g. policy 'bar' has higher priority than 'foo'. The higher the value, the higher the priority. Defaults to zero.", MarkdownDescription: "Priority indicates the importance of a policy(PropagationPolicy or ClusterPropagationPolicy). A policy will be applied for the matched resource templates if there is no other policies with higher priority at the point of the resource template be processed. Once a resource template has been claimed by a policy, by default it will not be preempted by following policies even with a higher priority. See Preemption for more details. In case of two policies have the same priority, the one with a more precise matching rules in ResourceSelectors wins: - matching by name(resourceSelector.name) has higher priority than by selector(resourceSelector.labelSelector) - matching by selector(resourceSelector.labelSelector) has higher priority than by APIVersion(resourceSelector.apiVersion) and Kind(resourceSelector.kind). If there is still no winner at this point, the one with the lower alphabetic order wins, e.g. policy 'bar' has higher priority than 'foo'. The higher the value, the higher the priority. Defaults to zero.", diff --git a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_override_policy_v1alpha1_manifest.go b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_override_policy_v1alpha1_manifest.go index e3158030e..3c861ae39 100644 --- a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_override_policy_v1alpha1_manifest.go +++ b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_override_policy_v1alpha1_manifest.go @@ -59,6 +59,19 @@ type PolicyKarmadaIoOverridePolicyV1Alpha1ManifestData struct { Operator *string `tfsdk:"operator" json:"operator,omitempty"` Value *[]string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"command_overrider" json:"commandOverrider,omitempty"` + FieldOverrider *[]struct { + FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` + Json *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"json" json:"json,omitempty"` + Yaml *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"yaml" json:"yaml,omitempty"` + } `tfsdk:"field_overrider" json:"fieldOverrider,omitempty"` ImageOverrider *[]struct { Component *string `tfsdk:"component" json:"component,omitempty"` Operator *string `tfsdk:"operator" json:"operator,omitempty"` @@ -112,6 +125,19 @@ type PolicyKarmadaIoOverridePolicyV1Alpha1ManifestData struct { Operator *string `tfsdk:"operator" json:"operator,omitempty"` Value *[]string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"command_overrider" json:"commandOverrider,omitempty"` + FieldOverrider *[]struct { + FieldPath *string `tfsdk:"field_path" json:"fieldPath,omitempty"` + Json *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"json" json:"json,omitempty"` + Yaml *[]struct { + Operator *string `tfsdk:"operator" json:"operator,omitempty"` + SubPath *string `tfsdk:"sub_path" json:"subPath,omitempty"` + Value *map[string]string `tfsdk:"value" json:"value,omitempty"` + } `tfsdk:"yaml" json:"yaml,omitempty"` + } `tfsdk:"field_overrider" json:"fieldOverrider,omitempty"` ImageOverrider *[]struct { Component *string `tfsdk:"component" json:"component,omitempty"` Operator *string `tfsdk:"operator" json:"operator,omitempty"` @@ -361,6 +387,103 @@ func (r *PolicyKarmadaIoOverridePolicyV1Alpha1Manifest) Schema(_ context.Context Computed: false, }, + "field_overrider": schema.ListNestedAttribute{ + Description: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + MarkdownDescription: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "field_path": schema.StringAttribute{ + Description: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + MarkdownDescription: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + Required: true, + Optional: false, + Computed: false, + }, + + "json": schema.ListNestedAttribute{ + Description: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + MarkdownDescription: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "yaml": schema.ListNestedAttribute{ + Description: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + MarkdownDescription: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image_overrider": schema.ListNestedAttribute{ Description: "ImageOverrider represents the rules dedicated to handling image overrides.", MarkdownDescription: "ImageOverrider represents the rules dedicated to handling image overrides.", @@ -739,6 +862,103 @@ func (r *PolicyKarmadaIoOverridePolicyV1Alpha1Manifest) Schema(_ context.Context Computed: false, }, + "field_overrider": schema.ListNestedAttribute{ + Description: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + MarkdownDescription: "FieldOverrider represents the rules dedicated to modifying a specific field in any Kubernetes resource. This allows changing a single field within the resource with multiple operations. It is designed to handle structured field values such as those found in ConfigMaps or Secrets. The current implementation supports JSON and YAML formats, but can easily be extended to support XML in the future.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "field_path": schema.StringAttribute{ + Description: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + MarkdownDescription: "FieldPath specifies the initial location in the instance document where the operation should take place. The path uses RFC 6901 for navigating into nested structures. For example, the path '/data/db-config.yaml' specifies the configuration data key named 'db-config.yaml' in a ConfigMap: '/data/db-config.yaml'.", + Required: true, + Optional: false, + Computed: false, + }, + + "json": schema.ListNestedAttribute{ + Description: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + MarkdownDescription: "JSON represents the operations performed on the JSON document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "yaml": schema.ListNestedAttribute{ + Description: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + MarkdownDescription: "YAML represents the operations performed on the YAML document specified by the FieldPath.", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "operator": schema.StringAttribute{ + Description: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + MarkdownDescription: "Operator indicates the operation on target field. Available operators are: 'add', 'remove', and 'replace'.", + Required: true, + Optional: false, + Computed: false, + Validators: []validator.String{ + stringvalidator.OneOf("add", "remove", "replace"), + }, + }, + + "sub_path": schema.StringAttribute{ + Description: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + MarkdownDescription: "SubPath specifies the relative location within the initial FieldPath where the operation should take place. The path uses RFC 6901 for navigating into nested structures.", + Required: true, + Optional: false, + Computed: false, + }, + + "value": schema.MapAttribute{ + Description: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + MarkdownDescription: "Value is the new value to set for the specified field if the operation is 'add' or 'replace'. For 'remove' operation, this field is ignored.", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image_overrider": schema.ListNestedAttribute{ Description: "ImageOverrider represents the rules dedicated to handling image overrides.", MarkdownDescription: "ImageOverrider represents the rules dedicated to handling image overrides.", diff --git a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_propagation_policy_v1alpha1_manifest.go b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_propagation_policy_v1alpha1_manifest.go index 3cffa1711..546ebd926 100644 --- a/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_propagation_policy_v1alpha1_manifest.go +++ b/internal/provider/policy_karmada_io_v1alpha1/policy_karmada_io_propagation_policy_v1alpha1_manifest.go @@ -140,10 +140,11 @@ type PolicyKarmadaIoPropagationPolicyV1Alpha1ManifestData struct { SpreadByLabel *string `tfsdk:"spread_by_label" json:"spreadByLabel,omitempty"` } `tfsdk:"spread_constraints" json:"spreadConstraints,omitempty"` } `tfsdk:"placement" json:"placement,omitempty"` - Preemption *string `tfsdk:"preemption" json:"preemption,omitempty"` - Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` - PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` - ResourceSelectors *[]struct { + Preemption *string `tfsdk:"preemption" json:"preemption,omitempty"` + PreserveResourcesOnDeletion *bool `tfsdk:"preserve_resources_on_deletion" json:"preserveResourcesOnDeletion,omitempty"` + Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` + PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` + ResourceSelectors *[]struct { ApiVersion *string `tfsdk:"api_version" json:"apiVersion,omitempty"` Kind *string `tfsdk:"kind" json:"kind,omitempty"` LabelSelector *struct { @@ -919,6 +920,14 @@ func (r *PolicyKarmadaIoPropagationPolicyV1Alpha1Manifest) Schema(_ context.Cont }, }, + "preserve_resources_on_deletion": schema.BoolAttribute{ + Description: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the resource template is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the resource template. This setting is particularly useful during workload migration scenarios to ensure that rollback can occur quickly without affecting the workloads running on the member clusters. Additionally, this setting applies uniformly across all member clusters and will not selectively control preservation on only some clusters. Note: This setting does not apply to the deletion of the policy itself. When the policy is deleted, the resource templates and their corresponding propagated resources in member clusters will remain unchanged unless explicitly deleted.", + MarkdownDescription: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the resource template is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the resource template. This setting is particularly useful during workload migration scenarios to ensure that rollback can occur quickly without affecting the workloads running on the member clusters. Additionally, this setting applies uniformly across all member clusters and will not selectively control preservation on only some clusters. Note: This setting does not apply to the deletion of the policy itself. When the policy is deleted, the resource templates and their corresponding propagated resources in member clusters will remain unchanged unless explicitly deleted.", + Required: false, + Optional: true, + Computed: false, + }, + "priority": schema.Int64Attribute{ Description: "Priority indicates the importance of a policy(PropagationPolicy or ClusterPropagationPolicy). A policy will be applied for the matched resource templates if there is no other policies with higher priority at the point of the resource template be processed. Once a resource template has been claimed by a policy, by default it will not be preempted by following policies even with a higher priority. See Preemption for more details. In case of two policies have the same priority, the one with a more precise matching rules in ResourceSelectors wins: - matching by name(resourceSelector.name) has higher priority than by selector(resourceSelector.labelSelector) - matching by selector(resourceSelector.labelSelector) has higher priority than by APIVersion(resourceSelector.apiVersion) and Kind(resourceSelector.kind). If there is still no winner at this point, the one with the lower alphabetic order wins, e.g. policy 'bar' has higher priority than 'foo'. The higher the value, the higher the priority. Defaults to zero.", MarkdownDescription: "Priority indicates the importance of a policy(PropagationPolicy or ClusterPropagationPolicy). A policy will be applied for the matched resource templates if there is no other policies with higher priority at the point of the resource template be processed. Once a resource template has been claimed by a policy, by default it will not be preempted by following policies even with a higher priority. See Preemption for more details. In case of two policies have the same priority, the one with a more precise matching rules in ResourceSelectors wins: - matching by name(resourceSelector.name) has higher priority than by selector(resourceSelector.labelSelector) - matching by selector(resourceSelector.labelSelector) has higher priority than by APIVersion(resourceSelector.apiVersion) and Kind(resourceSelector.kind). If there is still no winner at this point, the one with the lower alphabetic order wins, e.g. policy 'bar' has higher priority than 'foo'. The higher the value, the higher the priority. Defaults to zero.", diff --git a/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_cluster_v1_manifest.go b/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_cluster_v1_manifest.go index 73dbb8d0c..51c3d2aa9 100644 --- a/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_cluster_v1_manifest.go +++ b/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_cluster_v1_manifest.go @@ -3441,8 +3441,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -3532,8 +3532,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -3573,8 +3573,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "The ConfigMap to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -3606,8 +3606,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour MarkdownDescription: "The Secret to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4398,8 +4398,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4431,8 +4431,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4464,8 +4464,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4497,8 +4497,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -5566,8 +5566,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -5958,8 +5958,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -6112,8 +6112,8 @@ func (r *PostgresqlCnpgIoClusterV1Manifest) Schema(_ context.Context, _ datasour }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_pooler_v1_manifest.go b/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_pooler_v1_manifest.go index 4da92411a..258cf91a7 100644 --- a/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_pooler_v1_manifest.go +++ b/internal/provider/postgresql_cnpg_io_v1/postgresql_cnpg_io_pooler_v1_manifest.go @@ -1524,8 +1524,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "The deployment strategy to use for pgbouncer to replace existing pods with new ones", Attributes: map[string]schema.Attribute{ "rolling_update": schema.SingleNestedAttribute{ - Description: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be.", - MarkdownDescription: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be.", + Description: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", + MarkdownDescription: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", Attributes: map[string]schema.Attribute{ "max_surge": schema.StringAttribute{ Description: "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", @@ -3084,8 +3084,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -3175,8 +3175,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -3216,8 +3216,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "The ConfigMap to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -3249,8 +3249,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "The Secret to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4796,8 +4796,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4887,8 +4887,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4928,8 +4928,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "The ConfigMap to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -4961,8 +4961,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "The Secret to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -6459,8 +6459,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -6533,8 +6533,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -6624,8 +6624,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -6665,8 +6665,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "The ConfigMap to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -6698,8 +6698,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "The Secret to select from", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -8735,8 +8735,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", Attributes: map[string]schema.Attribute{ "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine", + Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", Required: false, Optional: true, Computed: false, @@ -8903,8 +8903,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -8953,8 +8953,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -9026,8 +9026,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -9071,8 +9071,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -9469,8 +9469,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", Attributes: map[string]schema.Attribute{ "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine", - MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine", + Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", + MarkdownDescription: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified.", Required: false, Optional: true, Computed: false, @@ -9557,8 +9557,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -9604,8 +9604,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", Attributes: map[string]schema.Attribute{ "fs_type": schema.StringAttribute{ - Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine", - MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine", + Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + MarkdownDescription: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", Required: false, Optional: true, Computed: false, @@ -9707,8 +9707,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "host_path": schema.SingleNestedAttribute{ - Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.", - MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.", + Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + MarkdownDescription: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", Attributes: map[string]schema.Attribute{ "path": schema.StringAttribute{ Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", @@ -9752,8 +9752,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine", + Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", + MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", Required: false, Optional: true, Computed: false, @@ -9813,8 +9813,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "secretRef is the CHAP Secret for iSCSI target and initiator authentication", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -10114,8 +10114,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -10268,8 +10268,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc }, "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -10394,8 +10394,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", Attributes: map[string]schema.Attribute{ "fs_type": schema.StringAttribute{ - Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine", - MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine", + Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + MarkdownDescription: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: 'ext4', 'xfs', 'ntfs'. Implicitly inferred to be 'ext4' if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", Required: false, Optional: true, Computed: false, @@ -10447,8 +10447,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -10513,8 +10513,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, @@ -10663,8 +10663,8 @@ func (r *PostgresqlCnpgIoPoolerV1Manifest) Schema(_ context.Context, _ datasourc MarkdownDescription: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", Attributes: map[string]schema.Attribute{ "name": schema.StringAttribute{ - Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", - MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Drop 'kubebuilder:default' when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.", + Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + MarkdownDescription: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/provider_data_sources.go b/internal/provider/provider_data_sources.go index 88adfb985..1c07dcdc2 100644 --- a/internal/provider/provider_data_sources.go +++ b/internal/provider/provider_data_sources.go @@ -214,6 +214,7 @@ import ( "github.com/metio/terraform-provider-k8s/internal/provider/fossul_io_v1" "github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1" "github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1alpha2" + "github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1alpha3" "github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1beta1" "github.com/metio/terraform-provider-k8s/internal/provider/gateway_nginx_org_v1alpha1" "github.com/metio/terraform-provider-k8s/internal/provider/gateway_solo_io_v1" @@ -304,6 +305,7 @@ import ( "github.com/metio/terraform-provider-k8s/internal/provider/kubean_io_v1alpha1" "github.com/metio/terraform-provider-k8s/internal/provider/kubecost_com_v1alpha1" "github.com/metio/terraform-provider-k8s/internal/provider/kubevious_io_v1alpha1" + "github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1alpha1" "github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1beta1" "github.com/metio/terraform-provider-k8s/internal/provider/kuma_io_v1alpha1" "github.com/metio/terraform-provider-k8s/internal/provider/kustomize_toolkit_fluxcd_io_v1" @@ -1882,16 +1884,22 @@ func allDataSources() []func() datasource.DataSource { gateway_networking_k8s_io_v1.NewGatewayNetworkingK8SIoGrpcrouteV1Manifest, // gateway_networking_k8s_io_v1.NewGatewayNetworkingK8SIoHttprouteV1DataSource, gateway_networking_k8s_io_v1.NewGatewayNetworkingK8SIoHttprouteV1Manifest, + // gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2DataSource, + gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest, // gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoGrpcrouteV1Alpha2DataSource, gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoGrpcrouteV1Alpha2Manifest, // gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoReferenceGrantV1Alpha2DataSource, gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoReferenceGrantV1Alpha2Manifest, + // gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoReferenceGrantV1Alpha2DataSource, + gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoReferenceGrantV1Alpha2Manifest, // gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoTcprouteV1Alpha2DataSource, gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoTcprouteV1Alpha2Manifest, // gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoTlsrouteV1Alpha2DataSource, gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoTlsrouteV1Alpha2Manifest, // gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoUdprouteV1Alpha2DataSource, gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoUdprouteV1Alpha2Manifest, + // gateway_networking_k8s_io_v1alpha3.NewGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3DataSource, + gateway_networking_k8s_io_v1alpha3.NewGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest, // gateway_networking_k8s_io_v1beta1.NewGatewayNetworkingK8SIoGatewayClassV1Beta1DataSource, gateway_networking_k8s_io_v1beta1.NewGatewayNetworkingK8SIoGatewayClassV1Beta1Manifest, // gateway_networking_k8s_io_v1beta1.NewGatewayNetworkingK8SIoGatewayV1Beta1DataSource, @@ -2488,14 +2496,24 @@ func allDataSources() []func() datasource.DataSource { kubevious_io_v1alpha1.NewKubeviousIoWorkloadProfileV1Alpha1Manifest, // kubevious_io_v1alpha1.NewKubeviousIoWorkloadV1Alpha1DataSource, kubevious_io_v1alpha1.NewKubeviousIoWorkloadV1Alpha1Manifest, + // kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoCohortV1Alpha1DataSource, + kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoCohortV1Alpha1Manifest, + // kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueClusterV1Alpha1DataSource, + kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueClusterV1Alpha1Manifest, + // kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueConfigV1Alpha1DataSource, + kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueConfigV1Alpha1Manifest, // kueue_x_k8s_io_v1beta1.NewKueueXK8SIoAdmissionCheckV1Beta1DataSource, kueue_x_k8s_io_v1beta1.NewKueueXK8SIoAdmissionCheckV1Beta1Manifest, // kueue_x_k8s_io_v1beta1.NewKueueXK8SIoClusterQueueV1Beta1DataSource, kueue_x_k8s_io_v1beta1.NewKueueXK8SIoClusterQueueV1Beta1Manifest, // kueue_x_k8s_io_v1beta1.NewKueueXK8SIoLocalQueueV1Beta1DataSource, kueue_x_k8s_io_v1beta1.NewKueueXK8SIoLocalQueueV1Beta1Manifest, + // kueue_x_k8s_io_v1beta1.NewKueueXK8SIoProvisioningRequestConfigV1Beta1DataSource, + kueue_x_k8s_io_v1beta1.NewKueueXK8SIoProvisioningRequestConfigV1Beta1Manifest, // kueue_x_k8s_io_v1beta1.NewKueueXK8SIoResourceFlavorV1Beta1DataSource, kueue_x_k8s_io_v1beta1.NewKueueXK8SIoResourceFlavorV1Beta1Manifest, + // kueue_x_k8s_io_v1beta1.NewKueueXK8SIoWorkloadPriorityClassV1Beta1DataSource, + kueue_x_k8s_io_v1beta1.NewKueueXK8SIoWorkloadPriorityClassV1Beta1Manifest, // kueue_x_k8s_io_v1beta1.NewKueueXK8SIoWorkloadV1Beta1DataSource, kueue_x_k8s_io_v1beta1.NewKueueXK8SIoWorkloadV1Beta1Manifest, // kuma_io_v1alpha1.NewKumaIoCircuitBreakerV1Alpha1DataSource, @@ -3206,6 +3224,8 @@ func allDataSources() []func() datasource.DataSource { operator_tigera_io_v1.NewOperatorTigeraIoTlsterminatedRouteV1Manifest, // operator_tigera_io_v1beta1.NewOperatorTigeraIoAmazonCloudIntegrationV1Beta1DataSource, operator_tigera_io_v1beta1.NewOperatorTigeraIoAmazonCloudIntegrationV1Beta1Manifest, + // operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVlogsV1Beta1DataSource, + operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVlogsV1Beta1Manifest, // operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmagentV1Beta1DataSource, operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmagentV1Beta1Manifest, // operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmalertV1Beta1DataSource, @@ -3226,6 +3246,8 @@ func allDataSources() []func() datasource.DataSource { operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmprobeV1Beta1Manifest, // operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmruleV1Beta1DataSource, operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmruleV1Beta1Manifest, + // operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmscrapeConfigV1Beta1DataSource, + operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest, // operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmserviceScrapeV1Beta1DataSource, operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmserviceScrapeV1Beta1Manifest, // operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmsingleV1Beta1DataSource, diff --git a/internal/provider/provider_resources.go b/internal/provider/provider_resources.go index 342cf43bc..74fa3d31a 100644 --- a/internal/provider/provider_resources.go +++ b/internal/provider/provider_resources.go @@ -214,6 +214,7 @@ import ( //"github.com/metio/terraform-provider-k8s/internal/provider/fossul_io_v1" //"github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1" //"github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1alpha2" + //"github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1alpha3" //"github.com/metio/terraform-provider-k8s/internal/provider/gateway_networking_k8s_io_v1beta1" //"github.com/metio/terraform-provider-k8s/internal/provider/gateway_nginx_org_v1alpha1" //"github.com/metio/terraform-provider-k8s/internal/provider/gateway_solo_io_v1" @@ -304,6 +305,7 @@ import ( //"github.com/metio/terraform-provider-k8s/internal/provider/kubean_io_v1alpha1" //"github.com/metio/terraform-provider-k8s/internal/provider/kubecost_com_v1alpha1" //"github.com/metio/terraform-provider-k8s/internal/provider/kubevious_io_v1alpha1" + //"github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1alpha1" //"github.com/metio/terraform-provider-k8s/internal/provider/kueue_x_k8s_io_v1beta1" //"github.com/metio/terraform-provider-k8s/internal/provider/kuma_io_v1alpha1" //"github.com/metio/terraform-provider-k8s/internal/provider/kustomize_toolkit_fluxcd_io_v1" @@ -1218,11 +1220,14 @@ func allResources() []func() resource.Resource { //gateway_networking_k8s_io_v1.NewGatewayNetworkingK8SIoGatewayV1Resource, //gateway_networking_k8s_io_v1.NewGatewayNetworkingK8SIoGrpcrouteV1Resource, //gateway_networking_k8s_io_v1.NewGatewayNetworkingK8SIoHttprouteV1Resource, + //gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Resource, //gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoGrpcrouteV1Alpha2Resource, //gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoReferenceGrantV1Alpha2Resource, + //gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoReferenceGrantV1Alpha2Resource, //gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoTcprouteV1Alpha2Resource, //gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoTlsrouteV1Alpha2Resource, //gateway_networking_k8s_io_v1alpha2.NewGatewayNetworkingK8SIoUdprouteV1Alpha2Resource, + //gateway_networking_k8s_io_v1alpha3.NewGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Resource, //gateway_networking_k8s_io_v1beta1.NewGatewayNetworkingK8SIoGatewayClassV1Beta1Resource, //gateway_networking_k8s_io_v1beta1.NewGatewayNetworkingK8SIoGatewayV1Beta1Resource, //gateway_networking_k8s_io_v1beta1.NewGatewayNetworkingK8SIoHttprouteV1Beta1Resource, @@ -1521,10 +1526,15 @@ func allResources() []func() resource.Resource { //kubecost_com_v1alpha1.NewKubecostComTurndownScheduleV1Alpha1Resource, //kubevious_io_v1alpha1.NewKubeviousIoWorkloadProfileV1Alpha1Resource, //kubevious_io_v1alpha1.NewKubeviousIoWorkloadV1Alpha1Resource, + //kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoCohortV1Alpha1Resource, + //kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueClusterV1Alpha1Resource, + //kueue_x_k8s_io_v1alpha1.NewKueueXK8SIoMultiKueueConfigV1Alpha1Resource, //kueue_x_k8s_io_v1beta1.NewKueueXK8SIoAdmissionCheckV1Beta1Resource, //kueue_x_k8s_io_v1beta1.NewKueueXK8SIoClusterQueueV1Beta1Resource, //kueue_x_k8s_io_v1beta1.NewKueueXK8SIoLocalQueueV1Beta1Resource, + //kueue_x_k8s_io_v1beta1.NewKueueXK8SIoProvisioningRequestConfigV1Beta1Resource, //kueue_x_k8s_io_v1beta1.NewKueueXK8SIoResourceFlavorV1Beta1Resource, + //kueue_x_k8s_io_v1beta1.NewKueueXK8SIoWorkloadPriorityClassV1Beta1Resource, //kueue_x_k8s_io_v1beta1.NewKueueXK8SIoWorkloadV1Beta1Resource, //kuma_io_v1alpha1.NewKumaIoCircuitBreakerV1Alpha1Resource, //kuma_io_v1alpha1.NewKumaIoContainerPatchV1Alpha1Resource, @@ -1880,6 +1890,7 @@ func allResources() []func() resource.Resource { //operator_tigera_io_v1.NewOperatorTigeraIoTlspassThroughRouteV1Resource, //operator_tigera_io_v1.NewOperatorTigeraIoTlsterminatedRouteV1Resource, //operator_tigera_io_v1beta1.NewOperatorTigeraIoAmazonCloudIntegrationV1Beta1Resource, + //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVlogsV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmagentV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmalertV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmalertmanagerConfigV1Beta1Resource, @@ -1890,6 +1901,7 @@ func allResources() []func() resource.Resource { //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmpodScrapeV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmprobeV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmruleV1Beta1Resource, + //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmscrapeConfigV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmserviceScrapeV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmsingleV1Beta1Resource, //operator_victoriametrics_com_v1beta1.NewOperatorVictoriametricsComVmstaticScrapeV1Beta1Resource, diff --git a/internal/provider/psmdb_percona_com_v1/psmdb_percona_com_percona_server_mongo_db_v1_manifest.go b/internal/provider/psmdb_percona_com_v1/psmdb_percona_com_percona_server_mongo_db_v1_manifest.go index bed44e258..00d67f973 100644 --- a/internal/provider/psmdb_percona_com_v1/psmdb_percona_com_percona_server_mongo_db_v1_manifest.go +++ b/internal/provider/psmdb_percona_com_v1/psmdb_percona_com_percona_server_mongo_db_v1_manifest.go @@ -127,8 +127,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -141,7 +142,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -283,7 +285,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { MongosParams *string `tfsdk:"mongos_params" json:"mongosParams,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -572,7 +575,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -786,6 +790,10 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -1096,7 +1104,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1261,10 +1270,12 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"expose" json:"expose,omitempty"` ExternalNodes *[]struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` - Votes *int64 `tfsdk:"votes" json:"votes,omitempty"` + Horizons *map[string]string `tfsdk:"horizons" json:"horizons,omitempty"` + Host *string `tfsdk:"host" json:"host,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` + Tags *map[string]string `tfsdk:"tags" json:"tags,omitempty"` + Votes *int64 `tfsdk:"votes" json:"votes,omitempty"` } `tfsdk:"external_nodes" json:"externalNodes,omitempty"` HostAliases *[]struct { Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` @@ -1530,8 +1541,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -1574,7 +1586,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1788,6 +1801,10 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -2098,7 +2115,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2279,8 +2297,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -2291,8 +2310,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` - PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` - ReadinessProbe *struct { + PrimaryPreferTagSelector *map[string]string `tfsdk:"primary_prefer_tag_selector" json:"primaryPreferTagSelector,omitempty"` + PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` + ReadinessProbe *struct { Exec *struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` @@ -2321,9 +2341,15 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` + ReplsetOverrides *struct { + Horizons *map[string]string `tfsdk:"horizons" json:"horizons,omitempty"` + Host *string `tfsdk:"host" json:"host,omitempty"` + Tags *map[string]string `tfsdk:"tags" json:"tags,omitempty"` + } `tfsdk:"replset_overrides" json:"replsetOverrides,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2537,6 +2563,10 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -2847,7 +2877,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -3032,6 +3063,26 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"persistent_volume_claim" json:"persistentVolumeClaim,omitempty"` } `tfsdk:"volume_spec" json:"volumeSpec,omitempty"` } `tfsdk:"replsets" json:"replsets,omitempty"` + Roles *[]struct { + AuthenticationRestrictions *[]struct { + ClientSource *[]string `tfsdk:"client_source" json:"clientSource,omitempty"` + ServerAddress *[]string `tfsdk:"server_address" json:"serverAddress,omitempty"` + } `tfsdk:"authentication_restrictions" json:"authenticationRestrictions,omitempty"` + Db *string `tfsdk:"db" json:"db,omitempty"` + Privileges *[]struct { + Actions *[]string `tfsdk:"actions" json:"actions,omitempty"` + Resource *struct { + Cluster *bool `tfsdk:"cluster" json:"cluster,omitempty"` + Collection *string `tfsdk:"collection" json:"collection,omitempty"` + Db *string `tfsdk:"db" json:"db,omitempty"` + } `tfsdk:"resource" json:"resource,omitempty"` + } `tfsdk:"privileges" json:"privileges,omitempty"` + Role *string `tfsdk:"role" json:"role,omitempty"` + Roles *[]struct { + Db *string `tfsdk:"db" json:"db,omitempty"` + Role *string `tfsdk:"role" json:"role,omitempty"` + } `tfsdk:"roles" json:"roles,omitempty"` + } `tfsdk:"roles" json:"roles,omitempty"` SchedulerName *string `tfsdk:"scheduler_name" json:"schedulerName,omitempty"` Secrets *struct { EncryptionKey *string `tfsdk:"encryption_key" json:"encryptionKey,omitempty"` @@ -3328,7 +3379,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -3542,6 +3594,10 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -3852,7 +3908,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -4017,10 +4074,12 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"expose" json:"expose,omitempty"` ExternalNodes *[]struct { - Host *string `tfsdk:"host" json:"host,omitempty"` - Port *int64 `tfsdk:"port" json:"port,omitempty"` - Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` - Votes *int64 `tfsdk:"votes" json:"votes,omitempty"` + Horizons *map[string]string `tfsdk:"horizons" json:"horizons,omitempty"` + Host *string `tfsdk:"host" json:"host,omitempty"` + Port *int64 `tfsdk:"port" json:"port,omitempty"` + Priority *int64 `tfsdk:"priority" json:"priority,omitempty"` + Tags *map[string]string `tfsdk:"tags" json:"tags,omitempty"` + Votes *int64 `tfsdk:"votes" json:"votes,omitempty"` } `tfsdk:"external_nodes" json:"externalNodes,omitempty"` HostAliases *[]struct { Hostnames *[]string `tfsdk:"hostnames" json:"hostnames,omitempty"` @@ -4286,8 +4345,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -4330,7 +4390,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -4544,6 +4605,10 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -4854,7 +4919,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -5035,8 +5101,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -5047,8 +5114,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` } `tfsdk:"pod_security_context" json:"podSecurityContext,omitempty"` - PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` - ReadinessProbe *struct { + PrimaryPreferTagSelector *map[string]string `tfsdk:"primary_prefer_tag_selector" json:"primaryPreferTagSelector,omitempty"` + PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` + ReadinessProbe *struct { Exec *struct { Command *[]string `tfsdk:"command" json:"command,omitempty"` } `tfsdk:"exec" json:"exec,omitempty"` @@ -5077,9 +5145,15 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { TerminationGracePeriodSeconds *int64 `tfsdk:"termination_grace_period_seconds" json:"terminationGracePeriodSeconds,omitempty"` TimeoutSeconds *int64 `tfsdk:"timeout_seconds" json:"timeoutSeconds,omitempty"` } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` + ReplsetOverrides *struct { + Horizons *map[string]string `tfsdk:"horizons" json:"horizons,omitempty"` + Host *string `tfsdk:"host" json:"host,omitempty"` + Tags *map[string]string `tfsdk:"tags" json:"tags,omitempty"` + } `tfsdk:"replset_overrides" json:"replsetOverrides,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -5293,6 +5367,10 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -5603,7 +5681,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -6034,8 +6113,9 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -6079,7 +6159,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"readiness_probe" json:"readinessProbe,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -6296,6 +6377,10 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -6606,7 +6691,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -6751,9 +6837,8 @@ type PsmdbPerconaComPerconaServerMongoDbV1ManifestData struct { Db *string `tfsdk:"db" json:"db,omitempty"` Name *string `tfsdk:"name" json:"name,omitempty"` PasswordSecretRef *struct { - Key *string `tfsdk:"key" json:"key,omitempty"` - Name *string `tfsdk:"name" json:"name,omitempty"` - Optional *bool `tfsdk:"optional" json:"optional,omitempty"` + Key *string `tfsdk:"key" json:"key,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` } `tfsdk:"password_secret_ref" json:"passwordSecretRef,omitempty"` Roles *[]struct { Db *string `tfsdk:"db" json:"db,omitempty"` @@ -7421,6 +7506,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -7510,6 +7603,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -8502,6 +8603,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -10437,6 +10546,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -11881,6 +11998,31 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -13932,6 +14074,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -15084,6 +15234,15 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ + "horizons": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "host": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -15108,6 +15267,15 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "tags": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "votes": schema.Int64Attribute{ Description: "", MarkdownDescription: "", @@ -16913,6 +17081,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -17203,6 +17379,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -18647,6 +18831,31 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -20698,6 +20907,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -21946,6 +22163,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -22019,6 +22244,15 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "primary_prefer_tag_selector": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "priority_class_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -22220,6 +22454,41 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "replset_overrides": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "horizons": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tags": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "resources": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -22236,6 +22505,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -23680,6 +23957,31 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -25731,6 +26033,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -26980,6 +27290,142 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "roles": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "authentication_restrictions": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "client_source": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "server_address": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "db": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "privileges": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "actions": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: true, + Optional: false, + Computed: false, + }, + + "resource": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "cluster": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "collection": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "db": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: true, + Optional: false, + Computed: false, + }, + + "role": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "roles": schema.ListNestedAttribute{ + Description: "", + MarkdownDescription: "", + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "db": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + + "role": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "scheduler_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -28965,6 +29411,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -30409,6 +30863,31 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -32460,6 +32939,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -33612,6 +34099,15 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context MarkdownDescription: "", NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ + "horizons": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "host": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -33636,6 +34132,15 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "tags": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "votes": schema.Int64Attribute{ Description: "", MarkdownDescription: "", @@ -35326,39 +35831,122 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, - "fs_group": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - - "fs_group_change_policy": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_group": schema.Int64Attribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - - "run_as_non_root": schema.BoolAttribute{ + "fs_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "fs_group_change_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "se_linux_options": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "level": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "role": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "user": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "supplemental_groups": schema.ListAttribute{ Description: "", MarkdownDescription: "", + ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, - "run_as_user": schema.Int64Attribute{ + "supplemental_groups_policy": schema.StringAttribute{ Description: "", MarkdownDescription: "", Required: false, @@ -35366,81 +35954,6 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, - "se_linux_options": schema.SingleNestedAttribute{ - Description: "", - MarkdownDescription: "", - Attributes: map[string]schema.Attribute{ - "level": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - - "role": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - - "user": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "seccomp_profile": schema.SingleNestedAttribute{ - Description: "", - MarkdownDescription: "", - Attributes: map[string]schema.Attribute{ - "localhost_profile": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: false, - Optional: true, - Computed: false, - }, - - "type": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - }, - }, - Required: false, - Optional: true, - Computed: false, - }, - - "supplemental_groups": schema.ListAttribute{ - Description: "", - MarkdownDescription: "", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, - "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -35731,6 +36244,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -37175,6 +37696,31 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -39226,6 +39772,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -40474,6 +41028,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -40547,6 +41109,15 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "primary_prefer_tag_selector": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + "priority_class_name": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -40748,6 +41319,41 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "replset_overrides": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "horizons": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "host": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "tags": schema.MapAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "resources": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -40764,6 +41370,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -42208,6 +42822,31 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -44259,6 +44898,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -47189,6 +47836,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -47487,6 +48142,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -48948,6 +49611,31 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -50999,6 +51687,14 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -51981,8 +52677,8 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context "db": schema.StringAttribute{ Description: "", MarkdownDescription: "", - Required: true, - Optional: false, + Required: false, + Optional: true, Computed: false, }, @@ -51999,14 +52695,6 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context MarkdownDescription: "", Attributes: map[string]schema.Attribute{ "key": schema.StringAttribute{ - Description: "", - MarkdownDescription: "", - Required: true, - Optional: false, - Computed: false, - }, - - "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", Required: false, @@ -52014,11 +52702,11 @@ func (r *PsmdbPerconaComPerconaServerMongoDbV1Manifest) Schema(_ context.Context Computed: false, }, - "optional": schema.BoolAttribute{ + "name": schema.StringAttribute{ Description: "", MarkdownDescription: "", - Required: false, - Optional: true, + Required: true, + Optional: false, Computed: false, }, }, diff --git a/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest.go b/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest.go index 4d5e31386..32eb155bd 100644 --- a/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest.go +++ b/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest.go @@ -154,7 +154,8 @@ type PxcPerconaComPerconaXtraDbclusterRestoreV1ManifestData struct { PxcCluster *string `tfsdk:"pxc_cluster" json:"pxcCluster,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1061,6 +1062,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterRestoreV1Manifest) Schema(_ context.Co Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, diff --git a/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_v1_manifest.go b/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_v1_manifest.go index e5c9f48c1..747971d2c 100644 --- a/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_v1_manifest.go +++ b/internal/provider/pxc_percona_com_v1/pxc_percona_com_percona_xtra_db_cluster_v1_manifest.go @@ -57,7 +57,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -299,8 +300,9 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -314,7 +316,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { PriorityClassName *string `tfsdk:"priority_class_name" json:"priorityClassName,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -705,8 +708,9 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -757,7 +761,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { ReplicasServiceType *string `tfsdk:"replicas_service_type" json:"replicasServiceType,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -825,7 +830,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { } `tfsdk:"sidecar_pv_cs" json:"sidecarPVCs,omitempty"` SidecarResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -982,6 +988,10 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -1292,7 +1302,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1452,10 +1463,44 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { IgnoreAnnotations *[]string `tfsdk:"ignore_annotations" json:"ignoreAnnotations,omitempty"` IgnoreLabels *[]string `tfsdk:"ignore_labels" json:"ignoreLabels,omitempty"` InitContainer *struct { + ContainerSecurityContext *struct { + AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` + AppArmorProfile *struct { + LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` + Capabilities *struct { + Add *[]string `tfsdk:"add" json:"add,omitempty"` + Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` + } `tfsdk:"capabilities" json:"capabilities,omitempty"` + Privileged *bool `tfsdk:"privileged" json:"privileged,omitempty"` + ProcMount *string `tfsdk:"proc_mount" json:"procMount,omitempty"` + ReadOnlyRootFilesystem *bool `tfsdk:"read_only_root_filesystem" json:"readOnlyRootFilesystem,omitempty"` + RunAsGroup *int64 `tfsdk:"run_as_group" json:"runAsGroup,omitempty"` + RunAsNonRoot *bool `tfsdk:"run_as_non_root" json:"runAsNonRoot,omitempty"` + RunAsUser *int64 `tfsdk:"run_as_user" json:"runAsUser,omitempty"` + SeLinuxOptions *struct { + Level *string `tfsdk:"level" json:"level,omitempty"` + Role *string `tfsdk:"role" json:"role,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + User *string `tfsdk:"user" json:"user,omitempty"` + } `tfsdk:"se_linux_options" json:"seLinuxOptions,omitempty"` + SeccompProfile *struct { + LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` + WindowsOptions *struct { + GmsaCredentialSpec *string `tfsdk:"gmsa_credential_spec" json:"gmsaCredentialSpec,omitempty"` + GmsaCredentialSpecName *string `tfsdk:"gmsa_credential_spec_name" json:"gmsaCredentialSpecName,omitempty"` + HostProcess *bool `tfsdk:"host_process" json:"hostProcess,omitempty"` + RunAsUserName *string `tfsdk:"run_as_user_name" json:"runAsUserName,omitempty"` + } `tfsdk:"windows_options" json:"windowsOptions,omitempty"` + } `tfsdk:"container_security_context" json:"containerSecurityContext,omitempty"` Image *string `tfsdk:"image" json:"image,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1504,7 +1549,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { ImagePullPolicy *string `tfsdk:"image_pull_policy" json:"imagePullPolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1554,7 +1600,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { PxcParams *string `tfsdk:"pxc_params" json:"pxcParams,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1859,8 +1906,9 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -1908,7 +1956,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { ReplicasServiceType *string `tfsdk:"replicas_service_type" json:"replicasServiceType,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -1976,7 +2025,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { } `tfsdk:"sidecar_pv_cs" json:"sidecarPVCs,omitempty"` SidecarResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2133,6 +2183,10 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -2443,7 +2497,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -2897,8 +2952,9 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -2962,7 +3018,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { } `tfsdk:"replication_channels" json:"replicationChannels,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -3030,7 +3087,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { } `tfsdk:"sidecar_pv_cs" json:"sidecarPVCs,omitempty"` SidecarResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -3187,6 +3245,10 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { Path *string `tfsdk:"path" json:"path,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"host_path" json:"hostPath,omitempty"` + Image *struct { + PullPolicy *string `tfsdk:"pull_policy" json:"pullPolicy,omitempty"` + Reference *string `tfsdk:"reference" json:"reference,omitempty"` + } `tfsdk:"image" json:"image,omitempty"` Iscsi *struct { ChapAuthDiscovery *bool `tfsdk:"chap_auth_discovery" json:"chapAuthDiscovery,omitempty"` ChapAuthSession *bool `tfsdk:"chap_auth_session" json:"chapAuthSession,omitempty"` @@ -3497,7 +3559,8 @@ type PxcPerconaComPerconaXtraDbclusterV1ManifestData struct { } `tfsdk:"resize_policy" json:"resizePolicy,omitempty"` Resources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -3859,6 +3922,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -5492,6 +5563,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -5589,6 +5668,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -8242,6 +8329,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -8599,6 +8694,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -9087,6 +9190,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -10123,6 +10234,31 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -12174,6 +12310,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -13273,6 +13417,230 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Description: "", MarkdownDescription: "", Attributes: map[string]schema.Attribute{ + "container_security_context": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "allow_privilege_escalation": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "capabilities": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "add": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + + "drop": schema.ListAttribute{ + Description: "", + MarkdownDescription: "", + ElementType: types.StringType, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "privileged": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "proc_mount": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "read_only_root_filesystem": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_group": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_non_root": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user": schema.Int64Attribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "se_linux_options": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "level": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "role": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "user": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "seccomp_profile": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: true, + Optional: false, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + + "windows_options": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "gmsa_credential_spec": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "gmsa_credential_spec_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "host_process": schema.BoolAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "run_as_user_name": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "image": schema.StringAttribute{ Description: "", MarkdownDescription: "", @@ -13297,6 +13665,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -13632,6 +14008,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -13975,6 +14359,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -16029,6 +16421,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -16361,6 +16761,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -16849,6 +17257,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -17885,6 +18301,31 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -19936,6 +20377,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -23016,6 +23465,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "", MarkdownDescription: "", @@ -23459,6 +23916,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -23947,6 +24412,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -24983,6 +25456,31 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Computed: false, }, + "image": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "pull_policy": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "reference": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "iscsi": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -27034,6 +27532,14 @@ func (r *PxcPerconaComPerconaXtraDbclusterV1Manifest) Schema(_ context.Context, Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, diff --git a/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_github_connector_v3_manifest.go b/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_github_connector_v3_manifest.go index e078e7c11..b1183278a 100644 --- a/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_github_connector_v3_manifest.go +++ b/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_github_connector_v3_manifest.go @@ -182,8 +182,8 @@ func (r *ResourcesTeleportDevTeleportGithubConnectorV3Manifest) Schema(_ context }, "client_secret": schema.StringAttribute{ - Description: "ClientSecret is the Github OAuth app client secret.", - MarkdownDescription: "ClientSecret is the Github OAuth app client secret.", + Description: "ClientSecret is the Github OAuth app client secret. This field supports secret lookup. See the operator documentation for more details.", + MarkdownDescription: "ClientSecret is the Github OAuth app client secret. This field supports secret lookup. See the operator documentation for more details.", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_oidc_connector_v3_manifest.go b/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_oidc_connector_v3_manifest.go index 48bd246e8..1d3f10c3c 100644 --- a/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_oidc_connector_v3_manifest.go +++ b/internal/provider/resources_teleport_dev_v3/resources_teleport_dev_teleport_oidc_connector_v3_manifest.go @@ -235,8 +235,8 @@ func (r *ResourcesTeleportDevTeleportOidcconnectorV3Manifest) Schema(_ context.C }, "client_secret": schema.StringAttribute{ - Description: "ClientSecret is used to authenticate the client.", - MarkdownDescription: "ClientSecret is used to authenticate the client.", + Description: "ClientSecret is used to authenticate the client. This field supports secret lookup. See the operator documentation for more details.", + MarkdownDescription: "ClientSecret is used to authenticate the client. This field supports secret lookup. See the operator documentation for more details.", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/temporal_io_v1beta1/temporal_io_temporal_cluster_v1beta1_manifest.go b/internal/provider/temporal_io_v1beta1/temporal_io_temporal_cluster_v1beta1_manifest.go index 04cd2bb01..d81ac6b3b 100644 --- a/internal/provider/temporal_io_v1beta1/temporal_io_temporal_cluster_v1beta1_manifest.go +++ b/internal/provider/temporal_io_v1beta1/temporal_io_temporal_cluster_v1beta1_manifest.go @@ -72,6 +72,7 @@ type TemporalIoTemporalClusterV1Beta1ManifestData struct { Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` } `tfsdk:"resources" json:"resources,omitempty"` + Version *string `tfsdk:"version" json:"version,omitempty"` } `tfsdk:"admintools" json:"admintools,omitempty"` Archival *struct { Enabled *bool `tfsdk:"enabled" json:"enabled,omitempty"` @@ -1070,6 +1071,14 @@ func (r *TemporalIoTemporalClusterV1Beta1Manifest) Schema(_ context.Context, _ d Optional: true, Computed: false, }, + + "version": schema.StringAttribute{ + Description: "Version defines the temporal admin tools version the instance should run.", + MarkdownDescription: "Version defines the temporal admin tools version the instance should run.", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, diff --git a/internal/provider/traefik_io_v1alpha1/traefik_io_middleware_v1alpha1_manifest.go b/internal/provider/traefik_io_v1alpha1/traefik_io_middleware_v1alpha1_manifest.go index cf47de426..1c9541e94 100644 --- a/internal/provider/traefik_io_v1alpha1/traefik_io_middleware_v1alpha1_manifest.go +++ b/internal/provider/traefik_io_v1alpha1/traefik_io_middleware_v1alpha1_manifest.go @@ -188,6 +188,7 @@ type TraefikIoMiddlewareV1Alpha1ManifestData struct { IpStrategy *struct { Depth *int64 `tfsdk:"depth" json:"depth,omitempty"` ExcludedIPs *[]string `tfsdk:"excluded_i_ps" json:"excludedIPs,omitempty"` + Ipv6Subnet *int64 `tfsdk:"ipv6_subnet" json:"ipv6Subnet,omitempty"` } `tfsdk:"ip_strategy" json:"ipStrategy,omitempty"` RequestHeaderName *string `tfsdk:"request_header_name" json:"requestHeaderName,omitempty"` RequestHost *bool `tfsdk:"request_host" json:"requestHost,omitempty"` @@ -197,6 +198,7 @@ type TraefikIoMiddlewareV1Alpha1ManifestData struct { IpStrategy *struct { Depth *int64 `tfsdk:"depth" json:"depth,omitempty"` ExcludedIPs *[]string `tfsdk:"excluded_i_ps" json:"excludedIPs,omitempty"` + Ipv6Subnet *int64 `tfsdk:"ipv6_subnet" json:"ipv6Subnet,omitempty"` } `tfsdk:"ip_strategy" json:"ipStrategy,omitempty"` RejectStatusCode *int64 `tfsdk:"reject_status_code" json:"rejectStatusCode,omitempty"` SourceRange *[]string `tfsdk:"source_range" json:"sourceRange,omitempty"` @@ -205,6 +207,7 @@ type TraefikIoMiddlewareV1Alpha1ManifestData struct { IpStrategy *struct { Depth *int64 `tfsdk:"depth" json:"depth,omitempty"` ExcludedIPs *[]string `tfsdk:"excluded_i_ps" json:"excludedIPs,omitempty"` + Ipv6Subnet *int64 `tfsdk:"ipv6_subnet" json:"ipv6Subnet,omitempty"` } `tfsdk:"ip_strategy" json:"ipStrategy,omitempty"` SourceRange *[]string `tfsdk:"source_range" json:"sourceRange,omitempty"` } `tfsdk:"ip_white_list" json:"ipWhiteList,omitempty"` @@ -245,6 +248,7 @@ type TraefikIoMiddlewareV1Alpha1ManifestData struct { IpStrategy *struct { Depth *int64 `tfsdk:"depth" json:"depth,omitempty"` ExcludedIPs *[]string `tfsdk:"excluded_i_ps" json:"excludedIPs,omitempty"` + Ipv6Subnet *int64 `tfsdk:"ipv6_subnet" json:"ipv6Subnet,omitempty"` } `tfsdk:"ip_strategy" json:"ipStrategy,omitempty"` RequestHeaderName *string `tfsdk:"request_header_name" json:"requestHeaderName,omitempty"` RequestHost *bool `tfsdk:"request_host" json:"requestHost,omitempty"` @@ -1397,6 +1401,14 @@ func (r *TraefikIoMiddlewareV1Alpha1Manifest) Schema(_ context.Context, _ dataso Optional: true, Computed: false, }, + + "ipv6_subnet": schema.Int64Attribute{ + Description: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + MarkdownDescription: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -1453,6 +1465,14 @@ func (r *TraefikIoMiddlewareV1Alpha1Manifest) Schema(_ context.Context, _ dataso Optional: true, Computed: false, }, + + "ipv6_subnet": schema.Int64Attribute{ + Description: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + MarkdownDescription: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -1505,6 +1525,14 @@ func (r *TraefikIoMiddlewareV1Alpha1Manifest) Schema(_ context.Context, _ dataso Optional: true, Computed: false, }, + + "ipv6_subnet": schema.Int64Attribute{ + Description: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + MarkdownDescription: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, @@ -1782,6 +1810,14 @@ func (r *TraefikIoMiddlewareV1Alpha1Manifest) Schema(_ context.Context, _ dataso Optional: true, Computed: false, }, + + "ipv6_subnet": schema.Int64Attribute{ + Description: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + MarkdownDescription: "IPv6Subnet configures Traefik to consider all IPv6 addresses from the defined subnet as originating from the same IP. Applies to RemoteAddrStrategy and DepthStrategy.", + Required: false, + Optional: true, + Computed: false, + }, }, Required: false, Optional: true, diff --git a/internal/provider/upgrade_cattle_io_v1/upgrade_cattle_io_plan_v1_manifest.go b/internal/provider/upgrade_cattle_io_v1/upgrade_cattle_io_plan_v1_manifest.go index 913cba59b..6ba329198 100644 --- a/internal/provider/upgrade_cattle_io_v1/upgrade_cattle_io_plan_v1_manifest.go +++ b/internal/provider/upgrade_cattle_io_v1/upgrade_cattle_io_plan_v1_manifest.go @@ -119,7 +119,11 @@ type UpgradeCattleIoPlanV1ManifestData struct { Image *string `tfsdk:"image" json:"image,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - Capabilities *struct { + AppArmorProfile *struct { + LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` @@ -207,7 +211,11 @@ type UpgradeCattleIoPlanV1ManifestData struct { Image *string `tfsdk:"image" json:"image,omitempty"` SecurityContext *struct { AllowPrivilegeEscalation *bool `tfsdk:"allow_privilege_escalation" json:"allowPrivilegeEscalation,omitempty"` - Capabilities *struct { + AppArmorProfile *struct { + LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` + Type *string `tfsdk:"type" json:"type,omitempty"` + } `tfsdk:"app_armor_profile" json:"appArmorProfile,omitempty"` + Capabilities *struct { Add *[]string `tfsdk:"add" json:"add,omitempty"` Drop *[]string `tfsdk:"drop" json:"drop,omitempty"` } `tfsdk:"capabilities" json:"capabilities,omitempty"` @@ -832,6 +840,31 @@ func (r *UpgradeCattleIoPlanV1Manifest) Schema(_ context.Context, _ datasource.S Computed: false, }, + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "capabilities": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", @@ -1424,6 +1457,31 @@ func (r *UpgradeCattleIoPlanV1Manifest) Schema(_ context.Context, _ datasource.S Computed: false, }, + "app_armor_profile": schema.SingleNestedAttribute{ + Description: "", + MarkdownDescription: "", + Attributes: map[string]schema.Attribute{ + "localhost_profile": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + + "type": schema.StringAttribute{ + Description: "", + MarkdownDescription: "", + Required: false, + Optional: true, + Computed: false, + }, + }, + Required: false, + Optional: true, + Computed: false, + }, + "capabilities": schema.SingleNestedAttribute{ Description: "", MarkdownDescription: "", diff --git a/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_destination_v1alpha1_manifest.go b/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_destination_v1alpha1_manifest.go index 6a3084aad..0076ebb3b 100644 --- a/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_destination_v1alpha1_manifest.go +++ b/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_destination_v1alpha1_manifest.go @@ -195,7 +195,8 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -220,8 +221,9 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -389,7 +391,8 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -414,8 +417,9 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -443,7 +447,8 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -456,6 +461,7 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { SshKeys *string `tfsdk:"ssh_keys" json:"sshKeys,omitempty"` SshUser *string `tfsdk:"ssh_user" json:"sshUser,omitempty"` StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` VolumeSnapshotClassName *string `tfsdk:"volume_snapshot_class_name" json:"volumeSnapshotClassName,omitempty"` } `tfsdk:"rsync" json:"rsync,omitempty"` RsyncTLS *struct { @@ -599,7 +605,8 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -624,8 +631,9 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -640,6 +648,7 @@ type VolsyncBackubeReplicationDestinationV1Alpha1ManifestData struct { ServiceAnnotations *map[string]string `tfsdk:"service_annotations" json:"serviceAnnotations,omitempty"` ServiceType *string `tfsdk:"service_type" json:"serviceType,omitempty"` StorageClassName *string `tfsdk:"storage_class_name" json:"storageClassName,omitempty"` + VolumeMode *string `tfsdk:"volume_mode" json:"volumeMode,omitempty"` VolumeSnapshotClassName *string `tfsdk:"volume_snapshot_class_name" json:"volumeSnapshotClassName,omitempty"` } `tfsdk:"rsync_tls" json:"rsyncTLS,omitempty"` Trigger *struct { @@ -1114,8 +1123,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1123,8 +1132,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1281,8 +1290,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1290,8 +1299,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1448,8 +1457,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1457,8 +1466,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1615,8 +1624,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1624,8 +1633,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1744,6 +1753,14 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -1910,14 +1927,22 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", @@ -2439,8 +2464,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2448,8 +2473,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2606,8 +2631,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2615,8 +2640,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2773,8 +2798,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2782,8 +2807,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2940,8 +2965,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2949,8 +2974,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -3069,6 +3094,14 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -3235,14 +3268,22 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", @@ -3453,6 +3494,14 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -3552,6 +3601,14 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. Computed: false, }, + "volume_mode": schema.StringAttribute{ + Description: "Will be used for the dynamic destination PVC created by VolSync. Defaults to 'Filesystem'", + MarkdownDescription: "Will be used for the dynamic destination PVC created by VolSync. Defaults to 'Filesystem'", + Required: false, + Optional: true, + Computed: false, + }, + "volume_snapshot_class_name": schema.StringAttribute{ Description: "volumeSnapshotClassName can be used to specify the VSC to be used if copyMethod is Snapshot. If not set, the default VSC is used.", MarkdownDescription: "volumeSnapshotClassName can be used to specify the VSC to be used if copyMethod is Snapshot. If not set, the default VSC is used.", @@ -3894,8 +3951,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -3903,8 +3960,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4061,8 +4118,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4070,8 +4127,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4228,8 +4285,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4237,8 +4294,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4395,8 +4452,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4404,8 +4461,8 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4524,6 +4581,14 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -4690,14 +4755,22 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. }, "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", @@ -4804,6 +4877,14 @@ func (r *VolsyncBackubeReplicationDestinationV1Alpha1Manifest) Schema(_ context. Computed: false, }, + "volume_mode": schema.StringAttribute{ + Description: "Will be used for the dynamic destination PVC created by VolSync. Defaults to 'Filesystem'", + MarkdownDescription: "Will be used for the dynamic destination PVC created by VolSync. Defaults to 'Filesystem'", + Required: false, + Optional: true, + Computed: false, + }, + "volume_snapshot_class_name": schema.StringAttribute{ Description: "volumeSnapshotClassName can be used to specify the VSC to be used if copyMethod is Snapshot. If not set, the default VSC is used.", MarkdownDescription: "volumeSnapshotClassName can be used to specify the VSC to be used if copyMethod is Snapshot. If not set, the default VSC is used.", diff --git a/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_source_v1alpha1_manifest.go b/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_source_v1alpha1_manifest.go index 2d8dc2ac6..9a91a725c 100644 --- a/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_source_v1alpha1_manifest.go +++ b/internal/provider/volsync_backube_v1alpha1/volsync_backube_replication_source_v1alpha1_manifest.go @@ -193,7 +193,8 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -218,8 +219,9 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -383,7 +385,8 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -408,8 +411,9 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -444,7 +448,8 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -598,7 +603,8 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -623,8 +629,9 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -779,7 +786,8 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { MoverPodLabels *map[string]string `tfsdk:"mover_pod_labels" json:"moverPodLabels,omitempty"` MoverResources *struct { Claims *[]struct { - Name *string `tfsdk:"name" json:"name,omitempty"` + Name *string `tfsdk:"name" json:"name,omitempty"` + Request *string `tfsdk:"request" json:"request,omitempty"` } `tfsdk:"claims" json:"claims,omitempty"` Limits *map[string]string `tfsdk:"limits" json:"limits,omitempty"` Requests *map[string]string `tfsdk:"requests" json:"requests,omitempty"` @@ -804,8 +812,9 @@ type VolsyncBackubeReplicationSourceV1Alpha1ManifestData struct { LocalhostProfile *string `tfsdk:"localhost_profile" json:"localhostProfile,omitempty"` Type *string `tfsdk:"type" json:"type,omitempty"` } `tfsdk:"seccomp_profile" json:"seccompProfile,omitempty"` - SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` - Sysctls *[]struct { + SupplementalGroups *[]string `tfsdk:"supplemental_groups" json:"supplementalGroups,omitempty"` + SupplementalGroupsPolicy *string `tfsdk:"supplemental_groups_policy" json:"supplementalGroupsPolicy,omitempty"` + Sysctls *[]struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"sysctls" json:"sysctls,omitempty"` @@ -1280,8 +1289,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1289,8 +1298,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1447,8 +1456,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1456,8 +1465,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1614,8 +1623,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1623,8 +1632,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1781,8 +1790,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1790,8 +1799,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -1910,6 +1919,14 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -2076,14 +2093,22 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", @@ -2573,8 +2598,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2582,8 +2607,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2740,8 +2765,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2749,8 +2774,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2907,8 +2932,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -2916,8 +2941,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -3074,8 +3099,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -3083,8 +3108,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -3203,6 +3228,14 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -3369,14 +3402,22 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", @@ -3633,6 +3674,14 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -4057,8 +4106,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4066,8 +4115,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4224,8 +4273,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4233,8 +4282,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4391,8 +4440,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4400,8 +4449,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4558,8 +4607,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4567,8 +4616,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -4687,6 +4736,14 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -4853,14 +4910,22 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", @@ -5285,8 +5350,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5294,8 +5359,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5452,8 +5517,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5461,8 +5526,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5619,8 +5684,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5628,8 +5693,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5786,8 +5851,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "match_label_keys": schema.ListAttribute{ - Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5795,8 +5860,8 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "mismatch_label_keys": schema.ListAttribute{ - Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", - MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", + MarkdownDescription: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", ElementType: types.StringType, Required: false, Optional: true, @@ -5915,6 +5980,14 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte Optional: false, Computed: false, }, + + "request": schema.StringAttribute{ + Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + MarkdownDescription: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", + Required: false, + Optional: true, + Computed: false, + }, }, }, Required: false, @@ -6081,14 +6154,22 @@ func (r *VolsyncBackubeReplicationSourceV1Alpha1Manifest) Schema(_ context.Conte }, "supplemental_groups": schema.ListAttribute{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", - MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", ElementType: types.StringType, Required: false, Optional: true, Computed: false, }, + "supplemental_groups_policy": schema.StringAttribute{ + Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + MarkdownDescription: "Defines how supplemental groups of the first container processes are calculated. Valid values are 'Merge' and 'Strict'. If not specified, 'Merge' is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", + Required: false, + Optional: true, + Computed: false, + }, + "sysctls": schema.ListNestedAttribute{ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", MarkdownDescription: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", diff --git a/internal/provider/vpcresources_k8s_aws_v1alpha1/vpcresources_k8s_aws_cni_node_v1alpha1_manifest.go b/internal/provider/vpcresources_k8s_aws_v1alpha1/vpcresources_k8s_aws_cni_node_v1alpha1_manifest.go index b3ebcf018..853869cde 100644 --- a/internal/provider/vpcresources_k8s_aws_v1alpha1/vpcresources_k8s_aws_cni_node_v1alpha1_manifest.go +++ b/internal/provider/vpcresources_k8s_aws_v1alpha1/vpcresources_k8s_aws_cni_node_v1alpha1_manifest.go @@ -46,7 +46,6 @@ type VpcresourcesK8SAwsCninodeV1Alpha1ManifestData struct { Name *string `tfsdk:"name" json:"name,omitempty"` Value *string `tfsdk:"value" json:"value,omitempty"` } `tfsdk:"features" json:"features,omitempty"` - Tags *map[string]string `tfsdk:"tags" json:"tags,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` } @@ -141,15 +140,6 @@ func (r *VpcresourcesK8SAwsCninodeV1Alpha1Manifest) Schema(_ context.Context, _ Optional: true, Computed: false, }, - - "tags": schema.MapAttribute{ - Description: "Additional tag key/value added to all network interfaces provisioned by the vpc-resource-controller and VPC-CNI", - MarkdownDescription: "Additional tag key/value added to all network interfaces provisioned by the vpc-resource-controller and VPC-CNI", - ElementType: types.StringType, - Required: false, - Optional: true, - Computed: false, - }, }, Required: false, Optional: true, diff --git a/internal/provider/work_karmada_io_v1alpha1/work_karmada_io_work_v1alpha1_manifest.go b/internal/provider/work_karmada_io_v1alpha1/work_karmada_io_work_v1alpha1_manifest.go index 08ae37c6f..276f17476 100644 --- a/internal/provider/work_karmada_io_v1alpha1/work_karmada_io_work_v1alpha1_manifest.go +++ b/internal/provider/work_karmada_io_v1alpha1/work_karmada_io_work_v1alpha1_manifest.go @@ -43,8 +43,9 @@ type WorkKarmadaIoWorkV1Alpha1ManifestData struct { } `tfsdk:"metadata" json:"metadata"` Spec *struct { - SuspendDispatching *bool `tfsdk:"suspend_dispatching" json:"suspendDispatching,omitempty"` - Workload *struct { + PreserveResourcesOnDeletion *bool `tfsdk:"preserve_resources_on_deletion" json:"preserveResourcesOnDeletion,omitempty"` + SuspendDispatching *bool `tfsdk:"suspend_dispatching" json:"suspendDispatching,omitempty"` + Workload *struct { Manifests *[]map[string]string `tfsdk:"manifests" json:"manifests,omitempty"` } `tfsdk:"workload" json:"workload,omitempty"` } `tfsdk:"spec" json:"spec,omitempty"` @@ -127,9 +128,17 @@ func (r *WorkKarmadaIoWorkV1Alpha1Manifest) Schema(_ context.Context, _ datasour Description: "Spec represents the desired behavior of Work.", MarkdownDescription: "Spec represents the desired behavior of Work.", Attributes: map[string]schema.Attribute{ + "preserve_resources_on_deletion": schema.BoolAttribute{ + Description: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member cluster when the Work object is deleted. If set to true, resources will be preserved on the member cluster. Default is false, which means resources will be deleted along with the Work object.", + MarkdownDescription: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member cluster when the Work object is deleted. If set to true, resources will be preserved on the member cluster. Default is false, which means resources will be deleted along with the Work object.", + Required: false, + Optional: true, + Computed: false, + }, + "suspend_dispatching": schema.BoolAttribute{ - Description: "SuspendDispatching controls whether dispatching should be suspended, nil means not suspend. Note: true means stop propagating to all clusters.", - MarkdownDescription: "SuspendDispatching controls whether dispatching should be suspended, nil means not suspend. Note: true means stop propagating to all clusters.", + Description: "SuspendDispatching controls whether dispatching should be suspended, nil means not suspend. Note: true means stop propagating to the corresponding member cluster, and does not prevent status collection.", + MarkdownDescription: "SuspendDispatching controls whether dispatching should be suspended, nil means not suspend. Note: true means stop propagating to the corresponding member cluster, and does not prevent status collection.", Required: false, Optional: true, Computed: false, diff --git a/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_cluster_resource_binding_v1alpha2_manifest.go b/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_cluster_resource_binding_v1alpha2_manifest.go index cc2725ba0..893404958 100644 --- a/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_cluster_resource_binding_v1alpha2_manifest.go +++ b/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_cluster_resource_binding_v1alpha2_manifest.go @@ -151,8 +151,9 @@ type WorkKarmadaIoClusterResourceBindingV1Alpha2ManifestData struct { SpreadByLabel *string `tfsdk:"spread_by_label" json:"spreadByLabel,omitempty"` } `tfsdk:"spread_constraints" json:"spreadConstraints,omitempty"` } `tfsdk:"placement" json:"placement,omitempty"` - PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` - ReplicaRequirements *struct { + PreserveResourcesOnDeletion *bool `tfsdk:"preserve_resources_on_deletion" json:"preserveResourcesOnDeletion,omitempty"` + PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` + ReplicaRequirements *struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` NodeClaim *struct { HardNodeAffinity *struct { @@ -1023,6 +1024,14 @@ func (r *WorkKarmadaIoClusterResourceBindingV1Alpha2Manifest) Schema(_ context.C Computed: false, }, + "preserve_resources_on_deletion": schema.BoolAttribute{ + Description: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the binding object is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the binding object. This setting applies to all Work objects created under this binding object.", + MarkdownDescription: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the binding object is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the binding object. This setting applies to all Work objects created under this binding object.", + Required: false, + Optional: true, + Computed: false, + }, + "propagate_deps": schema.BoolAttribute{ Description: "PropagateDeps tells if relevant resources should be propagated automatically. It is inherited from PropagationPolicy or ClusterPropagationPolicy. default false.", MarkdownDescription: "PropagateDeps tells if relevant resources should be propagated automatically. It is inherited from PropagationPolicy or ClusterPropagationPolicy. default false.", diff --git a/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_resource_binding_v1alpha2_manifest.go b/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_resource_binding_v1alpha2_manifest.go index 100df4e65..0ae9dc639 100644 --- a/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_resource_binding_v1alpha2_manifest.go +++ b/internal/provider/work_karmada_io_v1alpha2/work_karmada_io_resource_binding_v1alpha2_manifest.go @@ -152,8 +152,9 @@ type WorkKarmadaIoResourceBindingV1Alpha2ManifestData struct { SpreadByLabel *string `tfsdk:"spread_by_label" json:"spreadByLabel,omitempty"` } `tfsdk:"spread_constraints" json:"spreadConstraints,omitempty"` } `tfsdk:"placement" json:"placement,omitempty"` - PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` - ReplicaRequirements *struct { + PreserveResourcesOnDeletion *bool `tfsdk:"preserve_resources_on_deletion" json:"preserveResourcesOnDeletion,omitempty"` + PropagateDeps *bool `tfsdk:"propagate_deps" json:"propagateDeps,omitempty"` + ReplicaRequirements *struct { Namespace *string `tfsdk:"namespace" json:"namespace,omitempty"` NodeClaim *struct { HardNodeAffinity *struct { @@ -1036,6 +1037,14 @@ func (r *WorkKarmadaIoResourceBindingV1Alpha2Manifest) Schema(_ context.Context, Computed: false, }, + "preserve_resources_on_deletion": schema.BoolAttribute{ + Description: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the binding object is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the binding object. This setting applies to all Work objects created under this binding object.", + MarkdownDescription: "PreserveResourcesOnDeletion controls whether resources should be preserved on the member clusters when the binding object is deleted. If set to true, resources will be preserved on the member clusters. Default is false, which means resources will be deleted along with the binding object. This setting applies to all Work objects created under this binding object.", + Required: false, + Optional: true, + Computed: false, + }, + "propagate_deps": schema.BoolAttribute{ Description: "PropagateDeps tells if relevant resources should be propagated automatically. It is inherited from PropagationPolicy or ClusterPropagationPolicy. default false.", MarkdownDescription: "PropagateDeps tells if relevant resources should be propagated automatically. It is inherited from PropagationPolicy or ClusterPropagationPolicy. default false.", diff --git a/templates/data-sources/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.md.tmpl b/templates/data-sources/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.md.tmpl new file mode 100644 index 000000000..35d9b0bef --- /dev/null +++ b/templates/data-sources/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "gateway.networking.k8s.io" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.md.tmpl b/templates/data-sources/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.md.tmpl new file mode 100644 index 000000000..35d9b0bef --- /dev/null +++ b/templates/data-sources/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "gateway.networking.k8s.io" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/kueue_x_k8s_io_cohort_v1alpha1_manifest.md.tmpl b/templates/data-sources/kueue_x_k8s_io_cohort_v1alpha1_manifest.md.tmpl new file mode 100644 index 000000000..af545c787 --- /dev/null +++ b/templates/data-sources/kueue_x_k8s_io_cohort_v1alpha1_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "kueue.x-k8s.io" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.md.tmpl b/templates/data-sources/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.md.tmpl new file mode 100644 index 000000000..af545c787 --- /dev/null +++ b/templates/data-sources/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "kueue.x-k8s.io" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.md.tmpl b/templates/data-sources/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.md.tmpl new file mode 100644 index 000000000..af545c787 --- /dev/null +++ b/templates/data-sources/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "kueue.x-k8s.io" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.md.tmpl b/templates/data-sources/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.md.tmpl new file mode 100644 index 000000000..af545c787 --- /dev/null +++ b/templates/data-sources/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "kueue.x-k8s.io" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.md.tmpl b/templates/data-sources/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.md.tmpl new file mode 100644 index 000000000..af545c787 --- /dev/null +++ b/templates/data-sources/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "kueue.x-k8s.io" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/operator_victoriametrics_com_v_logs_v1beta1_manifest.md.tmpl b/templates/data-sources/operator_victoriametrics_com_v_logs_v1beta1_manifest.md.tmpl new file mode 100644 index 000000000..5b26583c6 --- /dev/null +++ b/templates/data-sources/operator_victoriametrics_com_v_logs_v1beta1_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "operator.victoriametrics.com" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/templates/data-sources/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.md.tmpl b/templates/data-sources/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.md.tmpl new file mode 100644 index 000000000..5b26583c6 --- /dev/null +++ b/templates/data-sources/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.md.tmpl @@ -0,0 +1,19 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "operator.victoriametrics.com" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +{{ if .HasExample -}} +## Example Usage + +{{ tffile (printf "examples/data-sources/%s/data-source.tf" .Name)}} +{{- end }} + +{{ .SchemaMarkdown | trimspace }} diff --git a/terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go b/terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go new file mode 100644 index 000000000..a951d0a27 --- /dev/null +++ b/terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package gateway_networking_k8s_io_v1alpha2 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestGatewayNetworkingK8SIoBackendLbpolicyV1Alpha2Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest", key)) + } +} diff --git a/terratest/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go b/terratest/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go new file mode 100644 index 000000000..424090a68 --- /dev/null +++ b/terratest/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package gateway_networking_k8s_io_v1alpha3 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestGatewayNetworkingK8SIoBackendTlspolicyV1Alpha3Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest", key)) + } +} diff --git a/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go b/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go new file mode 100644 index 000000000..e91daa74d --- /dev/null +++ b/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestKueueXK8SIoCohortV1Alpha1Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest", key)) + } +} diff --git a/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go b/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go new file mode 100644 index 000000000..3dd740ecf --- /dev/null +++ b/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestKueueXK8SIoMultiKueueClusterV1Alpha1Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest", key)) + } +} diff --git a/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go b/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go new file mode 100644 index 000000000..d6eb7d61f --- /dev/null +++ b/terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1alpha1 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestKueueXK8SIoMultiKueueConfigV1Alpha1Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest", key)) + } +} diff --git a/terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go b/terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go new file mode 100644 index 000000000..af648fc54 --- /dev/null +++ b/terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1beta1 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestKueueXK8SIoProvisioningRequestConfigV1Beta1Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest", key)) + } +} diff --git a/terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go b/terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go new file mode 100644 index 000000000..73ceffa96 --- /dev/null +++ b/terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package kueue_x_k8s_io_v1beta1 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestKueueXK8SIoWorkloadPriorityClassV1Beta1Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest", key)) + } +} diff --git a/terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go b/terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go new file mode 100644 index 000000000..bfcbb465a --- /dev/null +++ b/terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package operator_victoriametrics_com_v1beta1 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestOperatorVictoriametricsComVlogsV1Beta1Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest", key)) + } +} diff --git a/terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go b/terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go new file mode 100644 index 000000000..d77cc7fcd --- /dev/null +++ b/terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: The terraform-provider-k8s Authors + * SPDX-License-Identifier: 0BSD + */ + +package operator_victoriametrics_com_v1beta1 + +import ( + "fmt" + "github.com/gruntwork-io/terratest/modules/terraform" + "github.com/stretchr/testify/assert" + "os" + "testing" +) + +func TestOperatorVictoriametricsComVmscrapeConfigV1Beta1Manifest(t *testing.T) { + path := "../../examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest" + + terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{ + TerraformDir: path, + NoColor: true, + }) + + defer os.RemoveAll(path + "/.terraform.lock.hcl") + defer os.RemoveAll(path + "/terraform.tfstate") + defer os.RemoveAll(path + "/terraform.tfstate.backup") + defer os.RemoveAll(path + "/.terraform") + + defer terraform.Destroy(t, terraformOptions) + terraform.InitAndApplyAndIdempotent(t, terraformOptions) + + outputMap := terraform.OutputMap(t, terraformOptions, "manifests") + for key, value := range outputMap { + assert.NotEmpty(t, value, fmt.Sprintf("data %s.%s did not produce an output", "k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest", key)) + } +} diff --git a/terratests.mk b/terratests.mk index 6eefd19b2..1281941ed 100644 --- a/terratests.mk +++ b/terratests.mk @@ -2657,6 +2657,10 @@ out/terratest-sentinel-gateway_networking_k8s_io_http_route_v1_manifest_test.go: mkdir --parents $(@D) go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_http_route_v1_manifest_test.go touch $@ +out/terratest-sentinel-gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go: out/install-sentinel terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go $(shell find ./examples/data-sources/k8s_gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go + touch $@ out/terratest-sentinel-gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go: out/install-sentinel terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go $(shell find ./examples/data-sources/k8s_gateway_networking_k8s_io_grpc_route_v1alpha2_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go @@ -2665,6 +2669,10 @@ out/terratest-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manife mkdir --parents $(@D) go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go touch $@ +out/terratest-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go: out/install-sentinel terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go $(shell find ./examples/data-sources/k8s_gateway_networking_k8s_io_reference_grant_v1alpha2_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go + touch $@ out/terratest-sentinel-gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go: out/install-sentinel terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go $(shell find ./examples/data-sources/k8s_gateway_networking_k8s_io_tcp_route_v1alpha2_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go @@ -2677,6 +2685,10 @@ out/terratest-sentinel-gateway_networking_k8s_io_udp_route_v1alpha2_manifest_tes mkdir --parents $(@D) go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_udp_route_v1alpha2_manifest_test.go touch $@ +out/terratest-sentinel-gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go: out/install-sentinel terratest/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go $(shell find ./examples/data-sources/k8s_gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go + touch $@ out/terratest-sentinel-gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go: out/install-sentinel terratest/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_gateway_networking_k8s_io_gateway_class_v1beta1_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go @@ -3869,6 +3881,18 @@ out/terratest-sentinel-kubevious_io_workload_v1alpha1_manifest_test.go: out/inst mkdir --parents $(@D) go test -timeout=120s ./terratest/kubevious_io_v1alpha1/kubevious_io_workload_v1alpha1_manifest_test.go touch $@ +out/terratest-sentinel-kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_cohort_v1alpha1_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go + touch $@ +out/terratest-sentinel-kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go + touch $@ +out/terratest-sentinel-kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go + touch $@ out/terratest-sentinel-kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_admission_check_v1beta1_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go @@ -3881,10 +3905,18 @@ out/terratest-sentinel-kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go: out/ mkdir --parents $(@D) go test -timeout=120s ./terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go touch $@ +out/terratest-sentinel-kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go + touch $@ out/terratest-sentinel-kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_resource_flavor_v1beta1_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go touch $@ +out/terratest-sentinel-kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_workload_priority_class_v1beta1_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go + touch $@ out/terratest-sentinel-kueue_x_k8s_io_workload_v1beta1_manifest_test.go: out/install-sentinel terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_kueue_x_k8s_io_workload_v1beta1_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_v1beta1_manifest_test.go @@ -5305,6 +5337,10 @@ out/terratest-sentinel-operator_tigera_io_amazon_cloud_integration_v1beta1_manif mkdir --parents $(@D) go test -timeout=120s ./terratest/operator_tigera_io_v1beta1/operator_tigera_io_amazon_cloud_integration_v1beta1_manifest_test.go touch $@ +out/terratest-sentinel-operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go: out/install-sentinel terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_operator_victoriametrics_com_v_logs_v1beta1_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go + touch $@ out/terratest-sentinel-operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go: out/install-sentinel terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_operator_victoriametrics_com_vm_agent_v1beta1_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go @@ -5345,6 +5381,10 @@ out/terratest-sentinel-operator_victoriametrics_com_vm_rule_v1beta1_manifest_tes mkdir --parents $(@D) go test -timeout=120s ./terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_rule_v1beta1_manifest_test.go touch $@ +out/terratest-sentinel-operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go: out/install-sentinel terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest -type f -name '*.tf') + mkdir --parents $(@D) + go test -timeout=120s ./terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go + touch $@ out/terratest-sentinel-operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go: out/install-sentinel terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go $(shell find ./examples/data-sources/k8s_operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest -type f -name '*.tf') mkdir --parents $(@D) go test -timeout=120s ./terratest/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go @@ -6952,4 +6992,4 @@ out/terratest-sentinel-zookeeper_stackable_tech_zookeeper_znode_v1alpha1_manifes .PHONY: terratests -terratests: out/terratest-sentinel-about_k8s_io_cluster_property_v1alpha1_manifest_test.go out/terratest-sentinel-acid_zalan_do_operator_configuration_v1_manifest_test.go out/terratest-sentinel-acid_zalan_do_postgres_team_v1_manifest_test.go out/terratest-sentinel-acid_zalan_do_postgresql_v1_manifest_test.go out/terratest-sentinel-acme_cert_manager_io_challenge_v1_manifest_test.go out/terratest-sentinel-acme_cert_manager_io_order_v1_manifest_test.go out/terratest-sentinel-acmpca_services_k8s_aws_certificate_authority_activation_v1alpha1_manifest_test.go out/terratest-sentinel-acmpca_services_k8s_aws_certificate_authority_v1alpha1_manifest_test.go out/terratest-sentinel-acmpca_services_k8s_aws_certificate_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_autoscaling_listener_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_autoscaling_runner_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_ephemeral_runner_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_ephemeral_runner_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_horizontal_runner_autoscaler_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_replica_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_v1alpha1_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha3_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha3_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha4_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha4_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1beta1_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1beta1_manifest_test.go out/terratest-sentinel-admissionregistration_k8s_io_mutating_webhook_configuration_v1_manifest_test.go out/terratest-sentinel-admissionregistration_k8s_io_validating_webhook_configuration_v1_manifest_test.go out/terratest-sentinel-agent_k8s_elastic_co_agent_v1alpha1_manifest_test.go out/terratest-sentinel-airflow_stackable_tech_airflow_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_aws_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_aws_iam_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_cloud_stack_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_cloud_stack_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_control_plane_upgrade_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_docker_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_eksa_release_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_flux_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_git_ops_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_machine_deployment_upgrade_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_node_upgrade_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_nutanix_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_nutanix_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_oidc_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_snow_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_snow_ip_pool_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_snow_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_tinkerbell_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_tinkerbell_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_tinkerbell_template_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_v_sphere_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_v_sphere_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-apacheweb_arsenal_dev_apacheweb_v1alpha1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_config_provider_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_elastic_search_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_mongo_db_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_my_sql_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_postgre_sql_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_redis_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_pulsar_v1beta1_manifest_test.go out/terratest-sentinel-api_kubemod_io_mod_rule_v1beta1_manifest_test.go out/terratest-sentinel-apicodegen_apimatic_io_api_matic_v1beta1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composite_resource_definition_v1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composition_revision_v1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composition_v1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composition_revision_v1beta1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_api_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_authorizer_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_integration_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_route_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_stage_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_vpc_link_v1alpha1_manifest_test.go out/terratest-sentinel-apiregistration_k8s_io_api_service_v1_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_cluster_config_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_consumer_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_global_rule_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_plugin_config_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_route_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_tls_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_upstream_v2_manifest_test.go out/terratest-sentinel-apm_k8s_elastic_co_apm_server_v1_manifest_test.go out/terratest-sentinel-apm_k8s_elastic_co_apm_server_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_build_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_infra_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_runtime_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_supporting_service_v1beta1_manifest_test.go out/terratest-sentinel-app_lightbend_com_akka_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_cluster_v1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_active_active_database_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_database_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_remote_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-app_terraform_io_agent_pool_v1alpha2_manifest_test.go out/terratest-sentinel-app_terraform_io_module_v1alpha2_manifest_test.go out/terratest-sentinel-app_terraform_io_workspace_v1alpha2_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_access_log_policy_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_iam_auth_policy_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_service_import_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_target_group_policy_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_vpc_association_policy_v1alpha1_manifest_test.go out/terratest-sentinel-applicationautoscaling_services_k8s_aws_scalable_target_v1alpha1_manifest_test.go out/terratest-sentinel-applicationautoscaling_services_k8s_aws_scaling_policy_v1alpha1_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_backend_group_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_gateway_route_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_mesh_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_gateway_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_node_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_router_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_service_v1beta2_manifest_test.go out/terratest-sentinel-appprotect_f5_com_ap_log_conf_v1beta1_manifest_test.go out/terratest-sentinel-appprotect_f5_com_ap_policy_v1beta1_manifest_test.go out/terratest-sentinel-appprotect_f5_com_ap_user_sig_v1beta1_manifest_test.go out/terratest-sentinel-appprotectdos_f5_com_ap_dos_log_conf_v1beta1_manifest_test.go out/terratest-sentinel-appprotectdos_f5_com_ap_dos_policy_v1beta1_manifest_test.go out/terratest-sentinel-appprotectdos_f5_com_dos_protected_resource_v1beta1_manifest_test.go out/terratest-sentinel-apps_3scale_net_ap_icast_v1alpha1_manifest_test.go out/terratest-sentinel-apps_3scale_net_api_manager_backup_v1alpha1_manifest_test.go out/terratest-sentinel-apps_3scale_net_api_manager_restore_v1alpha1_manifest_test.go out/terratest-sentinel-apps_3scale_net_api_manager_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_base_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_description_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_feed_inventory_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_globalization_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_helm_chart_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_helm_release_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_localization_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_manifest_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_subscription_v1alpha1_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_broker_v1beta3_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_enterprise_v1beta3_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_plugin_v1beta3_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_broker_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_enterprise_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_plugin_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_rebalance_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_v2alpha1_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_v2beta1_manifest_test.go out/terratest-sentinel-apps_emqx_io_rebalance_v2beta1_manifest_test.go out/terratest-sentinel-apps_gitlab_com_git_lab_v1beta1_manifest_test.go out/terratest-sentinel-apps_gitlab_com_runner_v1beta2_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_definition_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_definition_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_version_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_service_descriptor_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_backup_policy_template_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_version_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_class_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_resource_constraint_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_version_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_config_constraint_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_ops_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_ops_request_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_service_descriptor_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_config_constraint_v1beta1_manifest_test.go out/terratest-sentinel-apps_kubedl_io_cron_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeedge_io_edge_application_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeedge_io_node_group_v1alpha1_manifest_test.go out/terratest-sentinel-apps_m88i_io_nexus_v1alpha1_manifest_test.go out/terratest-sentinel-apps_redhat_com_cluster_impairment_v1alpha1_manifest_test.go out/terratest-sentinel-apps_daemon_set_v1_manifest_test.go out/terratest-sentinel-apps_deployment_v1_manifest_test.go out/terratest-sentinel-apps_replica_set_v1_manifest_test.go out/terratest-sentinel-apps_stateful_set_v1_manifest_test.go out/terratest-sentinel-aquasecurity_github_io_aqua_starboard_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_app_project_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_application_set_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_application_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_argo_cd_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_argo_cd_export_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_argo_cd_v1beta1_manifest_test.go out/terratest-sentinel-asdb_aerospike_com_aerospike_cluster_v1_manifest_test.go out/terratest-sentinel-asdb_aerospike_com_aerospike_cluster_v1beta1_manifest_test.go out/terratest-sentinel-atlasmap_io_atlas_map_v1alpha1_manifest_test.go out/terratest-sentinel-auth_ops42_org_aws_auth_sync_config_v1alpha1_manifest_test.go out/terratest-sentinel-authentication_stackable_tech_authentication_class_v1alpha1_manifest_test.go out/terratest-sentinel-authzed_com_spice_db_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-automation_kubensync_com_managed_resource_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_elastic_co_elasticsearch_autoscaler_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1beta2_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1beta2_manifest_test.go out/terratest-sentinel-autoscaling_karmada_io_cron_federated_hpa_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_karmada_io_federated_hpa_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_horizontal_pod_autoscaler_v1_manifest_test.go out/terratest-sentinel-autoscaling_horizontal_pod_autoscaler_v2_manifest_test.go out/terratest-sentinel-awx_ansible_com_awx_v1beta1_manifest_test.go out/terratest-sentinel-awx_ansible_com_awx_backup_v1beta1_manifest_test.go out/terratest-sentinel-awx_ansible_com_awx_restore_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_apim_service_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_api_mgmt_api_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_app_insights_api_key_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_app_insights_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_load_balancer_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_network_interface_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_public_ip_address_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_action_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_database_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_failover_group_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_server_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_managed_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sqlv_net_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_virtual_machine_extension_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_virtual_machine_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_vm_scale_set_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_blob_container_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_consumer_group_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_cosmos_db_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_eventhub_namespace_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_eventhub_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_key_vault_key_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_key_vault_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_database_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_server_administrator_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_server_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sqlv_net_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_database_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sqlv_net_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_redis_cache_action_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_redis_cache_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_resource_group_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_storage_account_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_virtual_network_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_blob_container_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_server_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_user_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_database_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_failover_group_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_server_v1beta1_manifest_test.go out/terratest-sentinel-b3scale_infra_run_bbb_frontend_v1_manifest_test.go out/terratest-sentinel-b3scale_io_bbb_frontend_v1_manifest_test.go out/terratest-sentinel-batch_cron_job_v1_manifest_test.go out/terratest-sentinel-batch_job_v1_manifest_test.go out/terratest-sentinel-batch_volcano_sh_job_v1alpha1_manifest_test.go out/terratest-sentinel-beat_k8s_elastic_co_beat_v1beta1_manifest_test.go out/terratest-sentinel-beegfs_csi_netapp_com_beegfs_driver_v1_manifest_test.go out/terratest-sentinel-binding_operators_coreos_com_service_binding_v1alpha1_manifest_test.go out/terratest-sentinel-bitnami_com_sealed_secret_v1alpha1_manifest_test.go out/terratest-sentinel-bmc_tinkerbell_org_job_v1alpha1_manifest_test.go out/terratest-sentinel-bmc_tinkerbell_org_machine_v1alpha1_manifest_test.go out/terratest-sentinel-bmc_tinkerbell_org_task_v1alpha1_manifest_test.go out/terratest-sentinel-boskos_k8s_io_drlc_object_v1_manifest_test.go out/terratest-sentinel-boskos_k8s_io_resource_object_v1_manifest_test.go out/terratest-sentinel-bpfman_io_bpf_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_fentry_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_fexit_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_kprobe_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_tc_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_tracepoint_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_uprobe_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_xdp_program_v1alpha1_manifest_test.go out/terratest-sentinel-bus_volcano_sh_command_v1alpha1_manifest_test.go out/terratest-sentinel-cache_kubedl_io_cache_backend_v1alpha1_manifest_test.go out/terratest-sentinel-caching_ibm_com_varnish_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-camel_apache_org_build_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_camel_catalog_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_kit_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_platform_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_profile_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_kamelet_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_pipe_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_kamelet_binding_v1alpha1_manifest_test.go out/terratest-sentinel-camel_apache_org_kamelet_v1alpha1_manifest_test.go out/terratest-sentinel-canaries_flanksource_com_canary_v1_manifest_test.go out/terratest-sentinel-canaries_flanksource_com_component_v1_manifest_test.go out/terratest-sentinel-canaries_flanksource_com_topology_v1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_tenant_v1alpha1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_active_doc_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_application_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_backend_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_custom_policy_definition_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_developer_account_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_developer_user_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_open_api_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_product_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_proxy_config_promote_v1beta1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_capsule_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_tenant_v1alpha1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_tenant_v1beta1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_capsule_configuration_v1beta2_manifest_test.go out/terratest-sentinel-capsule_clastix_io_tenant_v1beta2_manifest_test.go out/terratest-sentinel-cassandra_datastax_com_cassandra_datacenter_v1beta1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_block_pool_rados_namespace_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_block_pool_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_bucket_notification_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_bucket_topic_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_client_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_cluster_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_cosi_driver_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_filesystem_mirror_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_filesystem_sub_volume_group_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_filesystem_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_nfs_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_realm_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_store_user_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_store_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_zone_group_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_zone_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_rbd_mirror_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_certificate_request_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_certificate_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_cluster_issuer_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_issuer_v1_manifest_test.go out/terratest-sentinel-certificates_k8s_io_certificate_signing_request_v1_manifest_test.go out/terratest-sentinel-certman_managed_openshift_io_certificate_request_v1alpha1_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_test_v1alpha1_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_test_v1alpha2_manifest_test.go out/terratest-sentinel-chaos_mesh_org_aws_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_azure_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_block_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_dns_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_gcp_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_http_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_io_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_jvm_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_kernel_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_network_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_physical_machine_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_physical_machine_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_http_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_io_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_network_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_remote_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_status_check_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_stress_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_time_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_workflow_node_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_workflow_v1alpha1_manifest_test.go out/terratest-sentinel-chaosblade_io_chaos_blade_v1alpha1_manifest_test.go out/terratest-sentinel-charts_amd_com_amdgpu_v1alpha1_manifest_test.go out/terratest-sentinel-charts_flagsmith_com_flagsmith_v1alpha1_manifest_test.go out/terratest-sentinel-charts_helm_k8s_io_snyk_monitor_v1alpha1_manifest_test.go out/terratest-sentinel-charts_opdev_io_synapse_v1alpha1_manifest_test.go out/terratest-sentinel-charts_operatorhub_io_cockroachdb_v1alpha1_manifest_test.go out/terratest-sentinel-che_eclipse_org_kubernetes_image_puller_v1alpha1_manifest_test.go out/terratest-sentinel-chisel_operator_io_exit_node_provisioner_v1_manifest_test.go out/terratest-sentinel-chisel_operator_io_exit_node_v1_manifest_test.go out/terratest-sentinel-chisel_operator_io_exit_node_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_clusterwide_envoy_config_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_clusterwide_network_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_egress_gateway_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_envoy_config_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_external_workload_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_identity_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_local_redirect_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_network_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_node_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_bgp_peering_policy_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_cidr_group_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_endpoint_slice_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_l2_announcement_policy_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_load_balancer_ip_pool_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_node_config_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_pod_ip_pool_v2alpha1_manifest_test.go out/terratest-sentinel-claudie_io_input_manifest_v1beta1_manifest_test.go out/terratest-sentinel-cloudformation_linki_space_stack_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_cache_policy_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_distribution_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_function_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_origin_request_policy_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_response_headers_policy_v1alpha1_manifest_test.go out/terratest-sentinel-cloudtrail_services_k8s_aws_event_data_store_v1alpha1_manifest_test.go out/terratest-sentinel-cloudtrail_services_k8s_aws_trail_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatch_aws_amazon_com_amazon_cloud_watch_agent_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatch_aws_amazon_com_instrumentation_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatch_services_k8s_aws_metric_alarm_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatchlogs_services_k8s_aws_log_group_v1alpha1_manifest_test.go out/terratest-sentinel-cluster_clusterpedia_io_cluster_sync_resources_v1alpha2_manifest_test.go out/terratest-sentinel-cluster_clusterpedia_io_pedia_cluster_v1alpha2_manifest_test.go out/terratest-sentinel-cluster_ipfs_io_circuit_relay_v1alpha1_manifest_test.go out/terratest-sentinel-cluster_ipfs_io_ipfs_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_pool_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_set_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_class_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_pool_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_set_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_class_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_deployment_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_health_check_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_pool_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_set_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_v1beta1_manifest_test.go out/terratest-sentinel-clusters_clusternet_io_cluster_registration_request_v1beta1_manifest_test.go out/terratest-sentinel-clusters_clusternet_io_managed_cluster_v1beta1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_instance_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_quota_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_setup_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_config_v1alpha1_manifest_test.go out/terratest-sentinel-confidentialcontainers_org_cc_runtime_v1beta1_manifest_test.go out/terratest-sentinel-config_gatekeeper_sh_config_v1alpha1_manifest_test.go out/terratest-sentinel-config_grafana_com_project_config_v1_manifest_test.go out/terratest-sentinel-config_karmada_io_resource_interpreter_customization_v1alpha1_manifest_test.go out/terratest-sentinel-config_karmada_io_resource_interpreter_webhook_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-config_koordinator_sh_cluster_colocation_profile_v1alpha1_manifest_test.go out/terratest-sentinel-config_storageos_com_operator_config_v1_manifest_test.go out/terratest-sentinel-control_k8ssandra_io_cassandra_task_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_collected_status_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_federated_object_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_collected_status_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_federated_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_federated_object_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_federated_type_config_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_scheduler_plugin_webhook_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_scheduling_profile_v1alpha1_manifest_test.go out/terratest-sentinel-core_linuxsuren_github_com_a_test_v1alpha1_manifest_test.go out/terratest-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-core_strimzi_io_strimzi_pod_set_v1beta2_manifest_test.go out/terratest-sentinel-config_map_v1_manifest_test.go out/terratest-sentinel-endpoints_v1_manifest_test.go out/terratest-sentinel-limit_range_v1_manifest_test.go out/terratest-sentinel-namespace_v1_manifest_test.go out/terratest-sentinel-persistent_volume_claim_v1_manifest_test.go out/terratest-sentinel-persistent_volume_v1_manifest_test.go out/terratest-sentinel-pod_v1_manifest_test.go out/terratest-sentinel-replication_controller_v1_manifest_test.go out/terratest-sentinel-secret_v1_manifest_test.go out/terratest-sentinel-service_account_v1_manifest_test.go out/terratest-sentinel-service_v1_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_autoscaler_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_backup_restore_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_backup_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_bucket_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_cluster_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_collection_group_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_collection_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_ephemeral_bucket_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_group_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_memcached_bucket_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_migration_replication_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_replication_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_role_binding_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_scope_group_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_scope_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_user_v2_manifest_test.go out/terratest-sentinel-craftypath_github_io_sops_secret_v1alpha1_manifest_test.go out/terratest-sentinel-crane_konveyor_io_operator_config_v1alpha1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_bgp_configuration_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_bgp_filter_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_bgp_peer_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_block_affinity_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_calico_node_status_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_cluster_information_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_felix_configuration_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_global_network_policy_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_global_network_set_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_host_endpoint_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ipam_block_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ipam_config_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ipam_handle_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ip_pool_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ip_reservation_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_kube_controllers_configuration_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_network_policy_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_network_set_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_tier_v1_manifest_test.go out/terratest-sentinel-data_fluid_io_alluxio_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_data_backup_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_data_load_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_dataset_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_goose_fs_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_jindo_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_juice_fs_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_thin_runtime_profile_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_thin_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-databases_schemahero_io_database_v1alpha4_manifest_test.go out/terratest-sentinel-databases_spotahome_com_redis_failover_v1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_agent_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_metric_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_monitor_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_slo_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_agent_v2alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_action_set_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_policy_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_repo_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_restore_v1alpha1_manifest_test.go out/terratest-sentinel-designer_kaoto_io_kaoto_v1alpha1_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_model_v1alpha2_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_v1alpha2_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_model_v1beta1_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_v1beta1_manifest_test.go out/terratest-sentinel-devops_kubesphere_io_releaser_controller_v1alpha1_manifest_test.go out/terratest-sentinel-devops_kubesphere_io_releaser_v1alpha1_manifest_test.go out/terratest-sentinel-dex_gpu_ninja_com_dex_identity_provider_v1alpha1_manifest_test.go out/terratest-sentinel-dex_gpu_ninja_com_dex_o_auth2_client_v1alpha1_manifest_test.go out/terratest-sentinel-dex_gpu_ninja_com_dex_user_v1alpha1_manifest_test.go out/terratest-sentinel-digitalis_io_vals_secret_v1_manifest_test.go out/terratest-sentinel-digitalis_io_db_secret_v1beta1_manifest_test.go out/terratest-sentinel-discovery_k8s_io_endpoint_slice_v1_manifest_test.go out/terratest-sentinel-documentdb_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-documentdb_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/terratest-sentinel-documentdb_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-druid_apache_org_druid_v1alpha1_manifest_test.go out/terratest-sentinel-druid_stackable_tech_druid_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-dynamodb_services_k8s_aws_backup_v1alpha1_manifest_test.go out/terratest-sentinel-dynamodb_services_k8s_aws_global_table_v1alpha1_manifest_test.go out/terratest-sentinel-dynamodb_services_k8s_aws_table_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_dhcp_options_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_elastic_ip_address_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_instance_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_internet_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_nat_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_route_table_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_security_group_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_subnet_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_transit_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_vpc_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_vpc_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-ecr_services_k8s_aws_pull_through_cache_rule_v1alpha1_manifest_test.go out/terratest-sentinel-ecr_services_k8s_aws_repository_v1alpha1_manifest_test.go out/terratest-sentinel-edc_stackable_tech_edc_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-efs_services_k8s_aws_access_point_v1alpha1_manifest_test.go out/terratest-sentinel-efs_services_k8s_aws_file_system_v1alpha1_manifest_test.go out/terratest-sentinel-efs_services_k8s_aws_mount_target_v1alpha1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_cluster_endpoint_slice_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_cluster_info_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_cluster_policy_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_endpoint_slice_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_gateway_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_policy_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_tunnel_v1beta1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_addon_v1alpha1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_fargate_profile_v1alpha1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_nodegroup_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_cache_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_cache_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_replication_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_user_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_user_v1alpha1_manifest_test.go out/terratest-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1_manifest_test.go out/terratest-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1beta1_manifest_test.go out/terratest-sentinel-elbv2_k8s_aws_target_group_binding_v1alpha1_manifest_test.go out/terratest-sentinel-elbv2_k8s_aws_ingress_class_params_v1beta1_manifest_test.go out/terratest-sentinel-elbv2_k8s_aws_target_group_binding_v1beta1_manifest_test.go out/terratest-sentinel-emrcontainers_services_k8s_aws_job_run_v1alpha1_manifest_test.go out/terratest-sentinel-emrcontainers_services_k8s_aws_virtual_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-ensembleoss_io_cluster_v1_manifest_test.go out/terratest-sentinel-ensembleoss_io_resource_v1_manifest_test.go out/terratest-sentinel-enterprise_gloo_solo_io_auth_config_v1_manifest_test.go out/terratest-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1_manifest_test.go out/terratest-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1beta1_manifest_test.go out/terratest-sentinel-events_k8s_io_event_v1_manifest_test.go out/terratest-sentinel-everest_percona_com_backup_storage_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_cluster_backup_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_cluster_restore_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_engine_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_monitoring_config_v1alpha1_manifest_test.go out/terratest-sentinel-execution_furiko_io_job_config_v1alpha1_manifest_test.go out/terratest-sentinel-execution_furiko_io_job_v1alpha1_manifest_test.go out/terratest-sentinel-executor_testkube_io_executor_v1_manifest_test.go out/terratest-sentinel-executor_testkube_io_webhook_v1_manifest_test.go out/terratest-sentinel-expansion_gatekeeper_sh_expansion_template_v1alpha1_manifest_test.go out/terratest-sentinel-expansion_gatekeeper_sh_expansion_template_v1beta1_manifest_test.go out/terratest-sentinel-extensions_istio_io_wasm_plugin_v1alpha1_manifest_test.go out/terratest-sentinel-extensions_kubeblocks_io_addon_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_cluster_secret_store_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_external_secret_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_secret_store_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_cluster_external_secret_v1beta1_manifest_test.go out/terratest-sentinel-external_secrets_io_cluster_secret_store_v1beta1_manifest_test.go out/terratest-sentinel-external_secrets_io_external_secret_v1beta1_manifest_test.go out/terratest-sentinel-external_secrets_io_secret_store_v1beta1_manifest_test.go out/terratest-sentinel-externaldata_gatekeeper_sh_provider_v1alpha1_manifest_test.go out/terratest-sentinel-externaldata_gatekeeper_sh_provider_v1beta1_manifest_test.go out/terratest-sentinel-externaldns_k8s_io_dns_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-externaldns_nginx_org_dns_endpoint_v1_manifest_test.go out/terratest-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_template_v1alpha1_manifest_test.go out/terratest-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_v1alpha1_manifest_test.go out/terratest-sentinel-flagger_app_alert_provider_v1beta1_manifest_test.go out/terratest-sentinel-flagger_app_canary_v1beta1_manifest_test.go out/terratest-sentinel-flagger_app_metric_template_v1beta1_manifest_test.go out/terratest-sentinel-flink_apache_org_flink_deployment_v1beta1_manifest_test.go out/terratest-sentinel-flink_apache_org_flink_session_job_v1beta1_manifest_test.go out/terratest-sentinel-flow_volcano_sh_job_flow_v1alpha1_manifest_test.go out/terratest-sentinel-flow_volcano_sh_job_template_v1alpha1_manifest_test.go out/terratest-sentinel-flowcontrol_apiserver_k8s_io_flow_schema_v1beta3_manifest_test.go out/terratest-sentinel-flowcontrol_apiserver_k8s_io_priority_level_configuration_v1beta3_manifest_test.go out/terratest-sentinel-flows_netobserv_io_flow_collector_v1alpha1_manifest_test.go out/terratest-sentinel-flows_netobserv_io_flow_collector_v1beta1_manifest_test.go out/terratest-sentinel-flows_netobserv_io_flow_collector_v1beta2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_filter_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_fluent_bit_config_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_input_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_output_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_parser_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_collector_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_filter_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_fluent_bit_config_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_fluent_bit_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_output_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_parser_v1alpha2_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_filter_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_fluentd_config_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_input_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_output_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_filter_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_fluentd_config_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_fluentd_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_input_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_output_v1alpha1_manifest_test.go out/terratest-sentinel-flux_framework_org_mini_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-flux_framework_org_mini_cluster_v1alpha2_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_forklift_controller_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_hook_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_host_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_migration_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_network_map_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_openstack_volume_populator_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_ovirt_volume_populator_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_plan_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_provider_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_storage_map_v1beta1_manifest_test.go out/terratest-sentinel-fossul_io_backup_config_v1_manifest_test.go out/terratest-sentinel-fossul_io_backup_schedule_v1_manifest_test.go out/terratest-sentinel-fossul_io_backup_v1_manifest_test.go out/terratest-sentinel-fossul_io_fossul_v1_manifest_test.go out/terratest-sentinel-fossul_io_restore_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_class_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_grpc_route_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_http_route_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_tls_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_udp_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_v1beta1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_http_route_v1beta1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_reference_grant_v1beta1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_client_settings_policy_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_nginx_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_nginx_proxy_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_observability_policy_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_solo_io_gateway_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_matchable_http_gateway_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_route_option_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_route_table_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_virtual_host_option_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_virtual_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_auth_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_consul_resolver_v1_manifest_test.go out/terratest-sentinel-getambassador_io_dev_portal_v1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_endpoint_resolver_v1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_service_resolver_v1_manifest_test.go out/terratest-sentinel-getambassador_io_log_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_mapping_v1_manifest_test.go out/terratest-sentinel-getambassador_io_module_v1_manifest_test.go out/terratest-sentinel-getambassador_io_rate_limit_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_tcp_mapping_v1_manifest_test.go out/terratest-sentinel-getambassador_io_tls_context_v1_manifest_test.go out/terratest-sentinel-getambassador_io_tracing_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_auth_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_consul_resolver_v2_manifest_test.go out/terratest-sentinel-getambassador_io_dev_portal_v2_manifest_test.go out/terratest-sentinel-getambassador_io_host_v2_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_endpoint_resolver_v2_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_service_resolver_v2_manifest_test.go out/terratest-sentinel-getambassador_io_log_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_mapping_v2_manifest_test.go out/terratest-sentinel-getambassador_io_module_v2_manifest_test.go out/terratest-sentinel-getambassador_io_rate_limit_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_tcp_mapping_v2_manifest_test.go out/terratest-sentinel-getambassador_io_tls_context_v2_manifest_test.go out/terratest-sentinel-getambassador_io_tracing_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_auth_service_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_consul_resolver_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_dev_portal_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_host_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_endpoint_resolver_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_service_resolver_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_listener_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_log_service_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_mapping_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_module_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_rate_limit_service_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_tcp_mapping_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_tls_context_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_tracing_service_v3alpha1_manifest_test.go out/terratest-sentinel-gitops_hybrid_cloud_patterns_io_pattern_v1alpha1_manifest_test.go out/terratest-sentinel-gloo_solo_io_proxy_v1_manifest_test.go out/terratest-sentinel-gloo_solo_io_settings_v1_manifest_test.go out/terratest-sentinel-gloo_solo_io_upstream_group_v1_manifest_test.go out/terratest-sentinel-gloo_solo_io_upstream_v1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_dashboard_v1beta1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_datasource_v1beta1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_folder_v1beta1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_v1beta1_manifest_test.go out/terratest-sentinel-graphql_gloo_solo_io_graph_ql_api_v1beta1_manifest_test.go out/terratest-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_class_v1alpha1_manifest_test.go out/terratest-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_content_v1alpha1_manifest_test.go out/terratest-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_cron_hot_backup_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_hazelcast_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_hot_backup_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_management_center_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_map_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_wan_replication_v1alpha1_manifest_test.go out/terratest-sentinel-hbase_stackable_tech_hbase_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-hdfs_stackable_tech_hdfs_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-helm_sigstore_dev_rekor_v1alpha1_manifest_test.go out/terratest-sentinel-helm_toolkit_fluxcd_io_helm_release_v2_manifest_test.go out/terratest-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta1_manifest_test.go out/terratest-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta2_manifest_test.go out/terratest-sentinel-hive_openshift_io_checkpoint_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_claim_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_deployment_customization_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_deployment_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_deprovision_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_image_set_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_pool_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_provision_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_relocate_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_state_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_dns_zone_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_hive_config_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_machine_pool_name_lease_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_machine_pool_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_selector_sync_identity_provider_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_selector_sync_set_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_sync_identity_provider_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_sync_set_v1_manifest_test.go out/terratest-sentinel-hive_stackable_tech_hive_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-hiveinternal_openshift_io_cluster_sync_lease_v1alpha1_manifest_test.go out/terratest-sentinel-hiveinternal_openshift_io_cluster_sync_v1alpha1_manifest_test.go out/terratest-sentinel-hiveinternal_openshift_io_fake_cluster_install_v1alpha1_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_hierarchical_resource_quota_v1alpha2_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_hierarchy_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_hnc_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_subnamespace_anchor_v1alpha2_manifest_test.go out/terratest-sentinel-hyperfoil_io_horreum_v1alpha1_manifest_test.go out/terratest-sentinel-hyperfoil_io_hyperfoil_v1alpha2_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_group_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_instance_profile_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_open_id_connect_provider_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_policy_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_role_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_user_v1alpha1_manifest_test.go out/terratest-sentinel-ibmcloud_ibm_com_composable_v1alpha1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta2_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta2_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta2_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_event_bridge_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_event_driven_ingestion_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_instance_binding_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_study_binding_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicomweb_ingestion_service_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dimse_ingestion_service_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dimse_proxy_v1alpha1_manifest_test.go out/terratest-sentinel-inference_kubedl_io_elastic_batch_job_v1alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_infinispan_v1_manifest_test.go out/terratest-sentinel-infinispan_org_backup_v2alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_batch_v2alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_cache_v2alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_restore_v2alpha1_manifest_test.go out/terratest-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha1_manifest_test.go out/terratest-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_template_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_template_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta2_manifest_test.go out/terratest-sentinel-installation_mattermost_com_mattermost_v1beta1_manifest_test.go out/terratest-sentinel-instana_io_instana_agent_v1_manifest_test.go out/terratest-sentinel-integration_rock8s_com_deferred_resource_v1beta1_manifest_test.go out/terratest-sentinel-integration_rock8s_com_plug_v1beta1_manifest_test.go out/terratest-sentinel-integration_rock8s_com_socket_v1beta1_manifest_test.go out/terratest-sentinel-iot_eclipse_org_ditto_v1alpha1_manifest_test.go out/terratest-sentinel-iot_eclipse_org_hawkbit_v1alpha1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1alpha1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_v1alpha1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1beta1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_v1beta1_manifest_test.go out/terratest-sentinel-isindir_github_com_sops_secret_v1alpha1_manifest_test.go out/terratest-sentinel-isindir_github_com_sops_secret_v1alpha2_manifest_test.go out/terratest-sentinel-isindir_github_com_sops_secret_v1alpha3_manifest_test.go out/terratest-sentinel-jaegertracing_io_jaeger_v1_manifest_test.go out/terratest-sentinel-jobset_x_k8s_io_job_set_v1alpha2_manifest_test.go out/terratest-sentinel-jobsmanager_raczylo_com_managed_job_v1beta1_manifest_test.go out/terratest-sentinel-k6_io_k6_v1alpha1_manifest_test.go out/terratest-sentinel-k6_io_private_load_zone_v1alpha1_manifest_test.go out/terratest-sentinel-k6_io_test_run_v1alpha1_manifest_test.go out/terratest-sentinel-k8gb_absa_oss_gslb_v1beta1_manifest_test.go out/terratest-sentinel-k8s_keycloak_org_keycloak_realm_import_v2alpha1_manifest_test.go out/terratest-sentinel-k8s_keycloak_org_keycloak_v2alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_backup_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_connection_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_database_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_grant_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_maria_db_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_max_scale_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_restore_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_sql_job_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_user_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_global_configuration_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_policy_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_transport_server_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_virtual_server_route_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_virtual_server_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_global_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_policy_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_transport_server_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_otterize_com_client_intents_v1alpha2_manifest_test.go out/terratest-sentinel-k8s_otterize_com_kafka_server_config_v1alpha2_manifest_test.go out/terratest-sentinel-k8s_otterize_com_protected_service_v1alpha2_manifest_test.go out/terratest-sentinel-k8s_otterize_com_client_intents_v1alpha3_manifest_test.go out/terratest-sentinel-k8s_otterize_com_kafka_server_config_v1alpha3_manifest_test.go out/terratest-sentinel-k8s_otterize_com_protected_service_v1alpha3_manifest_test.go out/terratest-sentinel-k8up_io_archive_v1_manifest_test.go out/terratest-sentinel-k8up_io_backup_v1_manifest_test.go out/terratest-sentinel-k8up_io_check_v1_manifest_test.go out/terratest-sentinel-k8up_io_pre_backup_pod_v1_manifest_test.go out/terratest-sentinel-k8up_io_prune_v1_manifest_test.go out/terratest-sentinel-k8up_io_restore_v1_manifest_test.go out/terratest-sentinel-k8up_io_schedule_v1_manifest_test.go out/terratest-sentinel-k8up_io_snapshot_v1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_cruise_control_operation_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_kafka_topic_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_kafka_user_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_kafka_cluster_v1beta1_manifest_test.go out/terratest-sentinel-kafka_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_stackable_tech_kafka_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_topic_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_user_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_topic_v1beta1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_user_v1beta1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_bridge_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_connect_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_connector_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_mirror_maker2_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_mirror_maker_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_node_pool_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_rebalance_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_topic_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_user_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_v1beta2_manifest_test.go out/terratest-sentinel-kamaji_clastix_io_data_store_v1alpha1_manifest_test.go out/terratest-sentinel-kamaji_clastix_io_tenant_control_plane_v1alpha1_manifest_test.go out/terratest-sentinel-karpenter_k8s_aws_ec2_node_class_v1_manifest_test.go out/terratest-sentinel-karpenter_k8s_aws_ec2_node_class_v1beta1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_claim_v1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_pool_v1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_claim_v1beta1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_pool_v1beta1_manifest_test.go out/terratest-sentinel-keda_sh_cluster_trigger_authentication_v1alpha1_manifest_test.go out/terratest-sentinel-keda_sh_scaled_job_v1alpha1_manifest_test.go out/terratest-sentinel-keda_sh_scaled_object_v1alpha1_manifest_test.go out/terratest-sentinel-keda_sh_trigger_authentication_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_k8s_reddec_net_keycloak_client_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_backup_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_client_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_realm_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_user_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_v1alpha1_manifest_test.go out/terratest-sentinel-keyspaces_services_k8s_aws_keyspace_v1alpha1_manifest_test.go out/terratest-sentinel-keyspaces_services_k8s_aws_table_v1alpha1_manifest_test.go out/terratest-sentinel-kiali_io_kiali_v1alpha1_manifest_test.go out/terratest-sentinel-kibana_k8s_elastic_co_kibana_v1_manifest_test.go out/terratest-sentinel-kibana_k8s_elastic_co_kibana_v1beta1_manifest_test.go out/terratest-sentinel-kinesis_services_k8s_aws_stream_v1alpha1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_module_v1beta1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_node_modules_config_v1beta1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta2_manifest_test.go out/terratest-sentinel-kms_services_k8s_aws_alias_v1alpha1_manifest_test.go out/terratest-sentinel-kms_services_k8s_aws_grant_v1alpha1_manifest_test.go out/terratest-sentinel-kms_services_k8s_aws_key_v1alpha1_manifest_test.go out/terratest-sentinel-kuadrant_io_dns_record_v1alpha1_manifest_test.go out/terratest-sentinel-kuadrant_io_managed_zone_v1alpha1_manifest_test.go out/terratest-sentinel-kuadrant_io_kuadrant_v1beta1_manifest_test.go out/terratest-sentinel-kuadrant_io_auth_policy_v1beta2_manifest_test.go out/terratest-sentinel-kuadrant_io_rate_limit_policy_v1beta2_manifest_test.go out/terratest-sentinel-kube_green_com_sleep_info_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_cluster_operation_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_local_artifact_set_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_manifest_v1alpha1_manifest_test.go out/terratest-sentinel-kubecost_com_turndown_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-kubevious_io_workload_profile_v1alpha1_manifest_test.go out/terratest-sentinel-kubevious_io_workload_v1alpha1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_cluster_queue_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_workload_v1beta1_manifest_test.go out/terratest-sentinel-kuma_io_circuit_breaker_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_container_patch_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_dataplane_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_dataplane_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_external_service_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_fault_injection_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_health_check_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_access_log_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_circuit_breaker_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_fault_injection_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_config_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_instance_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_health_check_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_http_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_load_balancing_strategy_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_proxy_patch_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_rate_limit_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_retry_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_tcp_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_timeout_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_trace_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_traffic_permission_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_proxy_template_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_rate_limit_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_retry_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_service_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_timeout_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_log_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_permission_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_trace_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_virtual_outbound_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_egress_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_egress_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_ingress_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_ingress_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_v1alpha1_manifest_test.go out/terratest-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1_manifest_test.go out/terratest-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta1_manifest_test.go out/terratest-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_policy_v1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_v1_manifest_test.go out/terratest-sentinel-kyverno_io_admission_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_background_scan_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_admission_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_background_scan_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_update_request_v1beta1_manifest_test.go out/terratest-sentinel-kyverno_io_admission_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_background_scan_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cleanup_policy_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_admission_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_background_scan_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_cleanup_policy_v2_manifest_test.go out/terratest-sentinel-kyverno_io_policy_exception_v2_manifest_test.go out/terratest-sentinel-kyverno_io_update_request_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cleanup_policy_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_cleanup_policy_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_global_context_entry_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_exception_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_cleanup_policy_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_cleanup_policy_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_policy_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_exception_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_v2beta1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_alias_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_code_signing_config_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_event_source_mapping_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_function_url_config_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_function_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_layer_version_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_version_v1alpha1_manifest_test.go out/terratest-sentinel-lb_lbconfig_carlosedp_com_external_load_balancer_v1_manifest_test.go out/terratest-sentinel-leaksignal_com_cluster_leaksignal_istio_v1_manifest_test.go out/terratest-sentinel-leaksignal_com_leaksignal_istio_v1_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta4_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta4_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta4_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta5_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta5_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta5_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta6_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta6_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta6_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta7_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta7_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta7_manifest_test.go out/terratest-sentinel-limitador_kuadrant_io_limitador_v1alpha1_manifest_test.go out/terratest-sentinel-listeners_stackable_tech_listener_class_v1alpha1_manifest_test.go out/terratest-sentinel-listeners_stackable_tech_listener_v1alpha1_manifest_test.go out/terratest-sentinel-listeners_stackable_tech_pod_listeners_v1alpha1_manifest_test.go out/terratest-sentinel-litmuschaos_io_chaos_engine_v1alpha1_manifest_test.go out/terratest-sentinel-litmuschaos_io_chaos_experiment_v1alpha1_manifest_test.go out/terratest-sentinel-litmuschaos_io_chaos_result_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_flow_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_output_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_flow_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_logging_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_output_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_logging_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_node_agent_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_cluster_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_cluster_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest_test.go out/terratest-sentinel-logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest_test.go out/terratest-sentinel-loki_grafana_com_alerting_rule_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_loki_stack_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_recording_rule_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_ruler_config_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_alerting_rule_v1beta1_manifest_test.go out/terratest-sentinel-loki_grafana_com_loki_stack_v1beta1_manifest_test.go out/terratest-sentinel-loki_grafana_com_recording_rule_v1beta1_manifest_test.go out/terratest-sentinel-loki_grafana_com_ruler_config_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_data_source_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_manager_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backup_target_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backup_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backup_volume_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_engine_image_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_engine_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_instance_manager_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_node_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_recurring_job_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_replica_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_setting_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_share_manager_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_volume_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_data_source_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_manager_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_backing_image_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_target_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_volume_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_engine_image_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_engine_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_instance_manager_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_node_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_orphan_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_recurring_job_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_replica_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_setting_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_share_manager_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_snapshot_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_support_bundle_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_system_backup_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_system_restore_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_volume_attachment_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_volume_v1beta2_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_moodle_v1alpha1_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_nginx_v1alpha1_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_phpfpm_v1alpha1_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_routine_v1alpha1_manifest_test.go out/terratest-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_template_v1alpha1_manifest_test.go out/terratest-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_v1alpha1_manifest_test.go out/terratest-sentinel-maps_k8s_elastic_co_elastic_maps_server_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_backup_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_connection_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_database_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_grant_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_maria_db_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_restore_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_sql_job_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_user_v1alpha1_manifest_test.go out/terratest-sentinel-marin3r_3scale_net_envoy_config_revision_v1alpha1_manifest_test.go out/terratest-sentinel-marin3r_3scale_net_envoy_config_v1alpha1_manifest_test.go out/terratest-sentinel-mattermost_com_cluster_installation_v1alpha1_manifest_test.go out/terratest-sentinel-mattermost_com_mattermost_restore_db_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_acl_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_user_v1alpha1_manifest_test.go out/terratest-sentinel-metacontroller_k8s_io_composite_controller_v1alpha1_manifest_test.go out/terratest-sentinel-metacontroller_k8s_io_controller_revision_v1alpha1_manifest_test.go out/terratest-sentinel-metacontroller_k8s_io_decorator_controller_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_bare_metal_host_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_bmc_event_subscription_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_data_image_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_firmware_schema_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_hardware_data_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_host_firmware_components_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_host_firmware_settings_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_preprovisioning_image_v1alpha1_manifest_test.go out/terratest-sentinel-minio_min_io_tenant_v2_manifest_test.go out/terratest-sentinel-mirrors_kts_studio_secret_mirror_v1alpha1_manifest_test.go out/terratest-sentinel-mirrors_kts_studio_secret_mirror_v1alpha2_manifest_test.go out/terratest-sentinel-model_kubedl_io_model_v1alpha1_manifest_test.go out/terratest-sentinel-model_kubedl_io_model_version_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_alertmanager_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_pod_monitor_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_probe_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_prometheus_rule_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_prometheus_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_service_monitor_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_thanos_ruler_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_alertmanager_config_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_prometheus_agent_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_scrape_config_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_alertmanager_config_v1beta1_manifest_test.go out/terratest-sentinel-monocle_monocle_change_metrics_io_monocle_v1alpha1_manifest_test.go out/terratest-sentinel-mq_services_k8s_aws_broker_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_info_import_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_label_identity_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_member_cluster_announce_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_multi_cluster_config_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_resource_export_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_resource_import_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_claim_v1alpha2_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha2_manifest_test.go out/terratest-sentinel-multicluster_x_k8s_io_applied_work_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_x_k8s_io_service_import_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_x_k8s_io_work_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_metadata_v1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_v1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_modify_set_v1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_image_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_metadata_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_modify_set_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_metadata_v1beta1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_v1beta1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_modify_set_v1beta1_manifest_test.go out/terratest-sentinel-nativestor_alauda_io_raw_device_v1_manifest_test.go out/terratest-sentinel-netchecks_io_network_assertion_v1_manifest_test.go out/terratest-sentinel-networkfirewall_services_k8s_aws_firewall_policy_v1alpha1_manifest_test.go out/terratest-sentinel-networkfirewall_services_k8s_aws_firewall_v1alpha1_manifest_test.go out/terratest-sentinel-networkfirewall_services_k8s_aws_rule_group_v1alpha1_manifest_test.go out/terratest-sentinel-networking_gke_io_gcp_backend_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_gcp_gateway_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_health_check_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_lb_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_managed_certificate_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_destination_rule_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_gateway_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_service_entry_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_sidecar_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_virtual_service_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_entry_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_group_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_destination_rule_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_envoy_filter_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_gateway_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_service_entry_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_sidecar_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_virtual_service_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_entry_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_group_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_destination_rule_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_gateway_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_proxy_config_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_service_entry_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_sidecar_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_virtual_service_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_entry_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_group_v1beta1_manifest_test.go out/terratest-sentinel-networking_k8s_aws_policy_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-networking_k8s_io_ingress_class_v1_manifest_test.go out/terratest-sentinel-networking_k8s_io_ingress_v1_manifest_test.go out/terratest-sentinel-networking_k8s_io_network_policy_v1_manifest_test.go out/terratest-sentinel-networking_karmada_io_multi_cluster_ingress_v1alpha1_manifest_test.go out/terratest-sentinel-networking_karmada_io_multi_cluster_service_v1alpha1_manifest_test.go out/terratest-sentinel-nfd_k8s_sigs_io_node_feature_rule_v1alpha1_manifest_test.go out/terratest-sentinel-nfd_kubernetes_io_node_feature_discovery_v1_manifest_test.go out/terratest-sentinel-nfd_kubernetes_io_node_feature_rule_v1alpha1_manifest_test.go out/terratest-sentinel-nifi_stackable_tech_nifi_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-nodeinfo_volcano_sh_numatopology_v1alpha1_manifest_test.go out/terratest-sentinel-notebook_kubedl_io_notebook_v1alpha1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_receiver_v1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_alert_v1beta1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_provider_v1beta1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_alert_v1beta2_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_provider_v1beta2_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta2_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_alert_v1beta3_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_provider_v1beta3_manifest_test.go out/terratest-sentinel-objectbucket_io_object_bucket_claim_v1alpha1_manifest_test.go out/terratest-sentinel-objectbucket_io_object_bucket_v1alpha1_manifest_test.go out/terratest-sentinel-ocmagent_managed_openshift_io_managed_fleet_notification_v1alpha1_manifest_test.go out/terratest-sentinel-ocmagent_managed_openshift_io_managed_notification_v1alpha1_manifest_test.go out/terratest-sentinel-ocmagent_managed_openshift_io_ocm_agent_v1alpha1_manifest_test.go out/terratest-sentinel-onepassword_com_one_password_item_v1_manifest_test.go out/terratest-sentinel-opa_stackable_tech_opa_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-opensearchservice_services_k8s_aws_domain_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_instrumentation_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_op_amp_bridge_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_open_telemetry_collector_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_open_telemetry_collector_v1beta1_manifest_test.go out/terratest-sentinel-operations_kubeedge_io_node_upgrade_job_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_csp_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_database_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_enforcer_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_kube_enforcer_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_scanner_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_server_v1alpha1_manifest_test.go out/terratest-sentinel-operator_authorino_kuadrant_io_authorino_v1beta1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_addon_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cryostat_io_cryostat_v1beta1_manifest_test.go out/terratest-sentinel-operator_cryostat_io_cryostat_v1beta2_manifest_test.go out/terratest-sentinel-operator_knative_dev_knative_eventing_v1beta1_manifest_test.go out/terratest-sentinel-operator_knative_dev_knative_serving_v1beta1_manifest_test.go out/terratest-sentinel-operator_marin3r_3scale_net_discovery_service_certificate_v1alpha1_manifest_test.go out/terratest-sentinel-operator_marin3r_3scale_net_discovery_service_v1alpha1_manifest_test.go out/terratest-sentinel-operator_marin3r_3scale_net_envoy_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-operator_open_cluster_management_io_cluster_manager_v1_manifest_test.go out/terratest-sentinel-operator_open_cluster_management_io_klusterlet_v1_manifest_test.go out/terratest-sentinel-operator_shipwright_io_shipwright_build_v1alpha1_manifest_test.go out/terratest-sentinel-operator_tigera_io_amazon_cloud_integration_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_api_server_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_application_layer_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_authentication_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_compliance_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_egress_gateway_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_image_set_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_installation_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_intrusion_detection_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_log_collector_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_log_storage_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_management_cluster_connection_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_management_cluster_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_manager_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_monitor_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_packet_capture_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_policy_recommendation_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tenant_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tigera_status_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tls_pass_through_route_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tls_terminated_route_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_amazon_cloud_integration_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_alert_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_auth_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_cluster_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_probe_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_rule_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_single_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_user_v1beta1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_backup_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_backup_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_config_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_cron_anything_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_database_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_export_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_import_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_instance_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_pitr_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_release_v1alpha1_manifest_test.go out/terratest-sentinel-org_eclipse_che_che_cluster_v1_manifest_test.go out/terratest-sentinel-org_eclipse_che_che_cluster_v2_manifest_test.go out/terratest-sentinel-organizations_services_k8s_aws_organizational_unit_v1alpha1_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_backup_v2_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_cluster_v2_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_restore_v2_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_upgrade_v2_manifest_test.go out/terratest-sentinel-pipes_services_k8s_aws_pipe_v1alpha1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_configuration_revision_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_configuration_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_provider_revision_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_provider_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_controller_config_v1alpha1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_lock_v1beta1_manifest_test.go out/terratest-sentinel-policy_clusterpedia_io_cluster_import_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_clusterpedia_io_pedia_cluster_lifecycle_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_cluster_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_federated_resource_quota_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_kubeedge_io_service_account_access_v1alpha1_manifest_test.go out/terratest-sentinel-policy_networking_k8s_io_admin_network_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_networking_k8s_io_baseline_admin_network_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_pod_disruption_budget_v1_manifest_test.go out/terratest-sentinel-postgres_operator_crunchydata_com_pg_admin_v1beta1_manifest_test.go out/terratest-sentinel-postgres_operator_crunchydata_com_pg_upgrade_v1beta1_manifest_test.go out/terratest-sentinel-postgres_operator_crunchydata_com_postgres_cluster_v1beta1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_backup_v1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_cluster_v1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_pooler_v1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_scheduled_backup_v1_manifest_test.go out/terratest-sentinel-projectcontour_io_http_proxy_v1_manifest_test.go out/terratest-sentinel-projectcontour_io_tls_certificate_delegation_v1_manifest_test.go out/terratest-sentinel-projectcontour_io_contour_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-projectcontour_io_contour_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-projectcontour_io_extension_service_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_alert_manager_definition_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_logging_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_rule_groups_namespace_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_workspace_v1alpha1_manifest_test.go out/terratest-sentinel-ps_percona_com_percona_server_my_sql_v1alpha1_manifest_test.go out/terratest-sentinel-ps_percona_com_percona_server_my_sql_backup_v1alpha1_manifest_test.go out/terratest-sentinel-ps_percona_com_percona_server_my_sql_restore_v1alpha1_manifest_test.go out/terratest-sentinel-psmdb_percona_com_percona_server_mongo_db_v1_manifest_test.go out/terratest-sentinel-psmdb_percona_com_percona_server_mongo_db_backup_v1_manifest_test.go out/terratest-sentinel-psmdb_percona_com_percona_server_mongo_db_restore_v1_manifest_test.go out/terratest-sentinel-ptp_openshift_io_node_ptp_device_v1_manifest_test.go out/terratest-sentinel-ptp_openshift_io_ptp_config_v1_manifest_test.go out/terratest-sentinel-ptp_openshift_io_ptp_operator_config_v1_manifest_test.go out/terratest-sentinel-pubsubplus_solace_com_pub_sub_plus_event_broker_v1beta1_manifest_test.go out/terratest-sentinel-pxc_percona_com_percona_xtra_db_cluster_backup_v1_manifest_test.go out/terratest-sentinel-pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest_test.go out/terratest-sentinel-pxc_percona_com_percona_xtra_db_cluster_v1_manifest_test.go out/terratest-sentinel-quay_redhat_com_quay_registry_v1_manifest_test.go out/terratest-sentinel-quota_codeflare_dev_quota_subtree_v1alpha1_manifest_test.go out/terratest-sentinel-ray_io_ray_cluster_v1_manifest_test.go out/terratest-sentinel-ray_io_ray_job_v1_manifest_test.go out/terratest-sentinel-ray_io_ray_service_v1_manifest_test.go out/terratest-sentinel-ray_io_ray_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-ray_io_ray_job_v1alpha1_manifest_test.go out/terratest-sentinel-ray_io_ray_service_v1alpha1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_cluster_role_binding_v1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_cluster_role_v1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_role_binding_v1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_role_v1_manifest_test.go out/terratest-sentinel-rbacmanager_reactiveops_io_rbac_definition_v1beta1_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_component_v1_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_operation_v1_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_component_v1beta2_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_operation_v1beta2_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_cluster_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_proxy_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_global_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_group_config_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_keepalived_group_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_namespace_config_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_patch_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_user_config_v1alpha1_manifest_test.go out/terratest-sentinel-registry_apicur_io_apicurio_registry_v1_manifest_test.go out/terratest-sentinel-registry_devfile_io_cluster_devfile_registries_list_v1alpha1_manifest_test.go out/terratest-sentinel-registry_devfile_io_devfile_registries_list_v1alpha1_manifest_test.go out/terratest-sentinel-registry_devfile_io_devfile_registry_v1alpha1_manifest_test.go out/terratest-sentinel-reliablesyncs_kubeedge_io_cluster_object_sync_v1alpha1_manifest_test.go out/terratest-sentinel-reliablesyncs_kubeedge_io_object_sync_v1alpha1_manifest_test.go out/terratest-sentinel-remediation_medik8s_io_node_health_check_v1alpha1_manifest_test.go out/terratest-sentinel-repo_manager_pulpproject_org_pulp_backup_v1beta2_manifest_test.go out/terratest-sentinel-repo_manager_pulpproject_org_pulp_restore_v1beta2_manifest_test.go out/terratest-sentinel-repo_manager_pulpproject_org_pulp_v1beta2_manifest_test.go out/terratest-sentinel-reports_kyverno_io_cluster_ephemeral_report_v1_manifest_test.go out/terratest-sentinel-reports_kyverno_io_ephemeral_report_v1_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_login_rule_v1_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_okta_import_rule_v1_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_provision_token_v2_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_saml_connector_v2_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_user_v2_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_github_connector_v3_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_oidc_connector_v3_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_role_v5_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_role_v6_manifest_test.go out/terratest-sentinel-ripsaw_cloudbulldozer_io_benchmark_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_broker_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_console_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_name_service_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_topic_transfer_v1alpha1_manifest_test.go out/terratest-sentinel-route53_services_k8s_aws_hosted_zone_v1alpha1_manifest_test.go out/terratest-sentinel-route53_services_k8s_aws_record_set_v1alpha1_manifest_test.go out/terratest-sentinel-route53resolver_services_k8s_aws_resolver_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-route53resolver_services_k8s_aws_resolver_rule_v1alpha1_manifest_test.go out/terratest-sentinel-rules_kubeedge_io_rule_endpoint_v1_manifest_test.go out/terratest-sentinel-rules_kubeedge_io_rule_v1_manifest_test.go out/terratest-sentinel-runtime_cluster_x_k8s_io_extension_config_v1alpha1_manifest_test.go out/terratest-sentinel-s3_services_k8s_aws_bucket_v1alpha1_manifest_test.go out/terratest-sentinel-s3_snappcloud_io_s3_bucket_v1alpha1_manifest_test.go out/terratest-sentinel-s3_snappcloud_io_s3_user_claim_v1alpha1_manifest_test.go out/terratest-sentinel-s3_snappcloud_io_s3_user_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_app_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_data_quality_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_domain_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_endpoint_config_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_feature_group_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_hyper_parameter_tuning_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_bias_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_explainability_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_package_group_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_package_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_quality_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_monitoring_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_notebook_instance_lifecycle_config_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_notebook_instance_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_processing_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_training_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_transform_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_user_profile_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_k8s_io_priority_class_v1_manifest_test.go out/terratest-sentinel-scheduling_koordinator_sh_device_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_koordinator_sh_pod_migration_job_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_koordinator_sh_reservation_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_sigs_k8s_io_elastic_quota_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_sigs_k8s_io_pod_group_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_volcano_sh_pod_group_v1beta1_manifest_test.go out/terratest-sentinel-scheduling_volcano_sh_queue_v1beta1_manifest_test.go out/terratest-sentinel-schemas_schemahero_io_data_type_v1alpha4_manifest_test.go out/terratest-sentinel-schemas_schemahero_io_migration_v1alpha4_manifest_test.go out/terratest-sentinel-schemas_schemahero_io_table_v1alpha4_manifest_test.go out/terratest-sentinel-scylla_scylladb_com_scylla_cluster_v1_manifest_test.go out/terratest-sentinel-scylla_scylladb_com_node_config_v1alpha1_manifest_test.go out/terratest-sentinel-scylla_scylladb_com_scylla_operator_config_v1alpha1_manifest_test.go out/terratest-sentinel-secretgenerator_mittwald_de_basic_auth_v1alpha1_manifest_test.go out/terratest-sentinel-secretgenerator_mittwald_de_ssh_key_pair_v1alpha1_manifest_test.go out/terratest-sentinel-secretgenerator_mittwald_de_string_secret_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_crossplane_io_store_config_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_doppler_com_doppler_secret_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_hcp_auth_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_hcp_vault_secrets_app_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_auth_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_connection_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_dynamic_secret_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_pki_secret_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_static_secret_v1beta1_manifest_test.go out/terratest-sentinel-secrets_stackable_tech_secret_class_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1_manifest_test.go out/terratest-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1alpha1_manifest_test.go out/terratest-sentinel-secretsmanager_services_k8s_aws_secret_v1alpha1_manifest_test.go out/terratest-sentinel-secscan_quay_redhat_com_image_manifest_vuln_v1alpha1_manifest_test.go out/terratest-sentinel-security_istio_io_authorization_policy_v1_manifest_test.go out/terratest-sentinel-security_istio_io_peer_authentication_v1_manifest_test.go out/terratest-sentinel-security_istio_io_request_authentication_v1_manifest_test.go out/terratest-sentinel-security_istio_io_authorization_policy_v1beta1_manifest_test.go out/terratest-sentinel-security_istio_io_peer_authentication_v1beta1_manifest_test.go out/terratest-sentinel-security_istio_io_request_authentication_v1beta1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_app_armor_profile_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_profile_binding_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_profile_recording_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_security_profile_node_status_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_security_profiles_operator_daemon_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_raw_selinux_profile_v1alpha2_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_selinux_profile_v1alpha2_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_seccomp_profile_v1beta1_manifest_test.go out/terratest-sentinel-self_node_remediation_medik8s_io_self_node_remediation_config_v1alpha1_manifest_test.go out/terratest-sentinel-self_node_remediation_medik8s_io_self_node_remediation_template_v1alpha1_manifest_test.go out/terratest-sentinel-self_node_remediation_medik8s_io_self_node_remediation_v1alpha1_manifest_test.go out/terratest-sentinel-sematext_com_sematext_agent_v1_manifest_test.go out/terratest-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1alpha3_manifest_test.go out/terratest-sentinel-servicebinding_io_service_binding_v1alpha3_manifest_test.go out/terratest-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1beta1_manifest_test.go out/terratest-sentinel-servicebinding_io_service_binding_v1beta1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_istio_control_plane_v1alpha1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_istio_mesh_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_istio_mesh_v1alpha1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_peer_istio_control_plane_v1alpha1_manifest_test.go out/terratest-sentinel-services_k8s_aws_adopted_resource_v1alpha1_manifest_test.go out/terratest-sentinel-services_k8s_aws_field_export_v1alpha1_manifest_test.go out/terratest-sentinel-serving_kubedl_io_inference_v1alpha1_manifest_test.go out/terratest-sentinel-sfn_services_k8s_aws_activity_v1alpha1_manifest_test.go out/terratest-sentinel-sfn_services_k8s_aws_state_machine_v1alpha1_manifest_test.go out/terratest-sentinel-site_superedge_io_node_group_v1alpha1_manifest_test.go out/terratest-sentinel-site_superedge_io_node_unit_v1alpha1_manifest_test.go out/terratest-sentinel-slo_koordinator_sh_node_metric_v1alpha1_manifest_test.go out/terratest-sentinel-slo_koordinator_sh_node_slo_v1alpha1_manifest_test.go out/terratest-sentinel-sloth_slok_dev_prometheus_service_level_v1_manifest_test.go out/terratest-sentinel-snapscheduler_backube_snapshot_schedule_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1beta1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1beta1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1beta1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_platform_application_v1alpha1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_platform_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_subscription_v1alpha1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_topic_v1alpha1_manifest_test.go out/terratest-sentinel-sonataflow_org_sonata_flow_build_v1alpha08_manifest_test.go out/terratest-sentinel-sonataflow_org_sonata_flow_platform_v1alpha08_manifest_test.go out/terratest-sentinel-sonataflow_org_sonata_flow_v1alpha08_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_bucket_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_git_repository_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_chart_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_repository_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_bucket_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_bucket_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_oci_repository_v1beta2_manifest_test.go out/terratest-sentinel-spark_stackable_tech_spark_application_v1alpha1_manifest_test.go out/terratest-sentinel-spark_stackable_tech_spark_history_server_v1alpha1_manifest_test.go out/terratest-sentinel-sparkoperator_k8s_io_scheduled_spark_application_v1beta2_manifest_test.go out/terratest-sentinel-sparkoperator_k8s_io_spark_application_v1beta2_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_identity_v1alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v1alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_managed_identity_v1alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v2alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v2beta1_manifest_test.go out/terratest-sentinel-sqs_services_k8s_aws_queue_v1alpha1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_ovs_network_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_ib_network_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_node_policy_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_node_state_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_pool_config_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_operator_config_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_csi_driver_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_csi_node_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_storage_class_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_volume_attachment_v1_manifest_test.go out/terratest-sentinel-storage_kubeblocks_io_storage_provider_v1alpha1_manifest_test.go out/terratest-sentinel-storageos_com_storage_os_cluster_v1_manifest_test.go out/terratest-sentinel-sts_min_io_policy_binding_v1alpha1_manifest_test.go out/terratest-sentinel-sts_min_io_policy_binding_v1beta1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_dataplane_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_gateway_config_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_static_service_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_udp_route_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_dataplane_v1alpha1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_gateway_config_v1alpha1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_static_service_v1alpha1_manifest_test.go out/terratest-sentinel-submariner_io_broker_v1alpha1_manifest_test.go out/terratest-sentinel-submariner_io_service_discovery_v1alpha1_manifest_test.go out/terratest-sentinel-submariner_io_submariner_v1alpha1_manifest_test.go out/terratest-sentinel-superset_stackable_tech_druid_connection_v1alpha1_manifest_test.go out/terratest-sentinel-superset_stackable_tech_superset_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-telemetry_istio_io_telemetry_v1_manifest_test.go out/terratest-sentinel-telemetry_istio_io_telemetry_v1alpha1_manifest_test.go out/terratest-sentinel-templates_gatekeeper_sh_constraint_template_v1_manifest_test.go out/terratest-sentinel-templates_gatekeeper_sh_constraint_template_v1alpha1_manifest_test.go out/terratest-sentinel-templates_gatekeeper_sh_constraint_template_v1beta1_manifest_test.go out/terratest-sentinel-tempo_grafana_com_tempo_monolithic_v1alpha1_manifest_test.go out/terratest-sentinel-tempo_grafana_com_tempo_stack_v1alpha1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_cluster_client_v1beta1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_cluster_v1beta1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_namespace_v1beta1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_worker_process_v1beta1_manifest_test.go out/terratest-sentinel-tests_testkube_io_script_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_execution_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_source_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_execution_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_trigger_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_script_v2_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_v2_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_v2_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_v3_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_v3_manifest_test.go out/terratest-sentinel-tf_tungsten_io_analytics_alarm_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_analytics_snmp_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_analytics_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_cassandra_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_config_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_control_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_kubemanager_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_manager_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_query_engine_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_rabbitmq_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_redis_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_vrouter_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_webui_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_zookeeper_v1alpha1_manifest_test.go out/terratest-sentinel-theketch_io_app_v1beta1_manifest_test.go out/terratest-sentinel-theketch_io_job_v1beta1_manifest_test.go out/terratest-sentinel-tinkerbell_org_hardware_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_osie_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_stack_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_template_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_workflow_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_hardware_v1alpha2_manifest_test.go out/terratest-sentinel-tinkerbell_org_osie_v1alpha2_manifest_test.go out/terratest-sentinel-tinkerbell_org_template_v1alpha2_manifest_test.go out/terratest-sentinel-tinkerbell_org_workflow_v1alpha2_manifest_test.go out/terratest-sentinel-topology_node_k8s_io_node_resource_topology_v1alpha1_manifest_test.go out/terratest-sentinel-topolvm_cybozu_com_logical_volume_v1_manifest_test.go out/terratest-sentinel-topolvm_cybozu_com_topolvm_cluster_v2_manifest_test.go out/terratest-sentinel-traefik_io_ingress_route_tcp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_ingress_route_udp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_ingress_route_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_middleware_tcp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_middleware_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_servers_transport_tcp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_servers_transport_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_tls_option_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_tls_store_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_traefik_service_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_elastic_dl_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_mars_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_mpi_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_py_torch_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_tf_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_xdl_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_xg_boost_job_v1alpha1_manifest_test.go out/terratest-sentinel-trino_stackable_tech_trino_catalog_v1alpha1_manifest_test.go out/terratest-sentinel-trino_stackable_tech_trino_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-trust_cert_manager_io_bundle_v1alpha1_manifest_test.go out/terratest-sentinel-upgrade_cattle_io_plan_v1_manifest_test.go out/terratest-sentinel-upgrade_managed_openshift_io_upgrade_config_v1alpha1_manifest_test.go out/terratest-sentinel-velero_io_backup_repository_v1_manifest_test.go out/terratest-sentinel-velero_io_backup_storage_location_v1_manifest_test.go out/terratest-sentinel-velero_io_backup_v1_manifest_test.go out/terratest-sentinel-velero_io_delete_backup_request_v1_manifest_test.go out/terratest-sentinel-velero_io_download_request_v1_manifest_test.go out/terratest-sentinel-velero_io_pod_volume_backup_v1_manifest_test.go out/terratest-sentinel-velero_io_pod_volume_restore_v1_manifest_test.go out/terratest-sentinel-velero_io_restore_v1_manifest_test.go out/terratest-sentinel-velero_io_schedule_v1_manifest_test.go out/terratest-sentinel-velero_io_server_status_request_v1_manifest_test.go out/terratest-sentinel-velero_io_volume_snapshot_location_v1_manifest_test.go out/terratest-sentinel-velero_io_data_download_v2alpha1_manifest_test.go out/terratest-sentinel-velero_io_data_upload_v2alpha1_manifest_test.go out/terratest-sentinel-virt_virtink_smartx_com_virtual_machine_migration_v1alpha1_manifest_test.go out/terratest-sentinel-virt_virtink_smartx_com_virtual_machine_v1alpha1_manifest_test.go out/terratest-sentinel-volsync_backube_replication_destination_v1alpha1_manifest_test.go out/terratest-sentinel-volsync_backube_replication_source_v1alpha1_manifest_test.go out/terratest-sentinel-vpcresources_k8s_aws_cni_node_v1alpha1_manifest_test.go out/terratest-sentinel-vpcresources_k8s_aws_security_group_policy_v1beta1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_policy_report_v1alpha1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha2_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_policy_report_v1alpha2_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_cluster_policy_report_v1beta1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_policy_report_v1beta1_manifest_test.go out/terratest-sentinel-wildfly_org_wild_fly_server_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_cluster_resource_binding_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_resource_binding_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_work_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_cluster_resource_binding_v1alpha2_manifest_test.go out/terratest-sentinel-work_karmada_io_resource_binding_v1alpha2_manifest_test.go out/terratest-sentinel-workload_codeflare_dev_app_wrapper_v1beta1_manifest_test.go out/terratest-sentinel-workload_codeflare_dev_scheduling_spec_v1beta1_manifest_test.go out/terratest-sentinel-workload_codeflare_dev_app_wrapper_v1beta2_manifest_test.go out/terratest-sentinel-workloads_kubeblocks_io_instance_set_v1_manifest_test.go out/terratest-sentinel-workloads_kubeblocks_io_instance_set_v1alpha1_manifest_test.go out/terratest-sentinel-workloads_kubeblocks_io_replicated_state_machine_v1alpha1_manifest_test.go out/terratest-sentinel-zonecontrol_k8s_aws_zone_aware_update_v1_manifest_test.go out/terratest-sentinel-zonecontrol_k8s_aws_zone_disruption_budget_v1_manifest_test.go out/terratest-sentinel-zookeeper_pravega_io_zookeeper_cluster_v1beta1_manifest_test.go out/terratest-sentinel-zookeeper_stackable_tech_zookeeper_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-zookeeper_stackable_tech_zookeeper_znode_v1alpha1_manifest_test.go ## run all terratest tests +terratests: out/terratest-sentinel-about_k8s_io_cluster_property_v1alpha1_manifest_test.go out/terratest-sentinel-acid_zalan_do_operator_configuration_v1_manifest_test.go out/terratest-sentinel-acid_zalan_do_postgres_team_v1_manifest_test.go out/terratest-sentinel-acid_zalan_do_postgresql_v1_manifest_test.go out/terratest-sentinel-acme_cert_manager_io_challenge_v1_manifest_test.go out/terratest-sentinel-acme_cert_manager_io_order_v1_manifest_test.go out/terratest-sentinel-acmpca_services_k8s_aws_certificate_authority_activation_v1alpha1_manifest_test.go out/terratest-sentinel-acmpca_services_k8s_aws_certificate_authority_v1alpha1_manifest_test.go out/terratest-sentinel-acmpca_services_k8s_aws_certificate_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_autoscaling_listener_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_autoscaling_runner_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_ephemeral_runner_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_github_com_ephemeral_runner_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_horizontal_runner_autoscaler_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_replica_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_set_v1alpha1_manifest_test.go out/terratest-sentinel-actions_summerwind_dev_runner_v1alpha1_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha3_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha3_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha4_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha4_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1beta1_manifest_test.go out/terratest-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1beta1_manifest_test.go out/terratest-sentinel-admissionregistration_k8s_io_mutating_webhook_configuration_v1_manifest_test.go out/terratest-sentinel-admissionregistration_k8s_io_validating_webhook_configuration_v1_manifest_test.go out/terratest-sentinel-agent_k8s_elastic_co_agent_v1alpha1_manifest_test.go out/terratest-sentinel-airflow_stackable_tech_airflow_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_aws_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_aws_iam_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_cloud_stack_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_cloud_stack_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_control_plane_upgrade_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_docker_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_eksa_release_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_flux_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_git_ops_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_machine_deployment_upgrade_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_node_upgrade_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_nutanix_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_nutanix_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_oidc_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_snow_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_snow_ip_pool_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_snow_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_tinkerbell_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_tinkerbell_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_tinkerbell_template_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_v_sphere_datacenter_config_v1alpha1_manifest_test.go out/terratest-sentinel-anywhere_eks_amazonaws_com_v_sphere_machine_config_v1alpha1_manifest_test.go out/terratest-sentinel-apacheweb_arsenal_dev_apacheweb_v1alpha1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_config_provider_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_elastic_search_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_mongo_db_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_my_sql_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_postgre_sql_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_redis_v1_manifest_test.go out/terratest-sentinel-api_clever_cloud_com_pulsar_v1beta1_manifest_test.go out/terratest-sentinel-api_kubemod_io_mod_rule_v1beta1_manifest_test.go out/terratest-sentinel-apicodegen_apimatic_io_api_matic_v1beta1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composite_resource_definition_v1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composition_revision_v1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composition_v1_manifest_test.go out/terratest-sentinel-apiextensions_crossplane_io_composition_revision_v1beta1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_api_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_authorizer_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_integration_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_route_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_stage_v1alpha1_manifest_test.go out/terratest-sentinel-apigatewayv2_services_k8s_aws_vpc_link_v1alpha1_manifest_test.go out/terratest-sentinel-apiregistration_k8s_io_api_service_v1_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_cluster_config_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_consumer_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_global_rule_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_plugin_config_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_route_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_tls_v2_manifest_test.go out/terratest-sentinel-apisix_apache_org_apisix_upstream_v2_manifest_test.go out/terratest-sentinel-apm_k8s_elastic_co_apm_server_v1_manifest_test.go out/terratest-sentinel-apm_k8s_elastic_co_apm_server_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_build_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_infra_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_runtime_v1beta1_manifest_test.go out/terratest-sentinel-app_kiegroup_org_kogito_supporting_service_v1beta1_manifest_test.go out/terratest-sentinel-app_lightbend_com_akka_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_cluster_v1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_active_active_database_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_database_v1alpha1_manifest_test.go out/terratest-sentinel-app_redislabs_com_redis_enterprise_remote_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-app_terraform_io_agent_pool_v1alpha2_manifest_test.go out/terratest-sentinel-app_terraform_io_module_v1alpha2_manifest_test.go out/terratest-sentinel-app_terraform_io_workspace_v1alpha2_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_access_log_policy_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_iam_auth_policy_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_service_import_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_target_group_policy_v1alpha1_manifest_test.go out/terratest-sentinel-application_networking_k8s_aws_vpc_association_policy_v1alpha1_manifest_test.go out/terratest-sentinel-applicationautoscaling_services_k8s_aws_scalable_target_v1alpha1_manifest_test.go out/terratest-sentinel-applicationautoscaling_services_k8s_aws_scaling_policy_v1alpha1_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_backend_group_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_gateway_route_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_mesh_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_gateway_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_node_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_router_v1beta2_manifest_test.go out/terratest-sentinel-appmesh_k8s_aws_virtual_service_v1beta2_manifest_test.go out/terratest-sentinel-appprotect_f5_com_ap_log_conf_v1beta1_manifest_test.go out/terratest-sentinel-appprotect_f5_com_ap_policy_v1beta1_manifest_test.go out/terratest-sentinel-appprotect_f5_com_ap_user_sig_v1beta1_manifest_test.go out/terratest-sentinel-appprotectdos_f5_com_ap_dos_log_conf_v1beta1_manifest_test.go out/terratest-sentinel-appprotectdos_f5_com_ap_dos_policy_v1beta1_manifest_test.go out/terratest-sentinel-appprotectdos_f5_com_dos_protected_resource_v1beta1_manifest_test.go out/terratest-sentinel-apps_3scale_net_ap_icast_v1alpha1_manifest_test.go out/terratest-sentinel-apps_3scale_net_api_manager_backup_v1alpha1_manifest_test.go out/terratest-sentinel-apps_3scale_net_api_manager_restore_v1alpha1_manifest_test.go out/terratest-sentinel-apps_3scale_net_api_manager_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_base_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_description_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_feed_inventory_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_globalization_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_helm_chart_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_helm_release_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_localization_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_manifest_v1alpha1_manifest_test.go out/terratest-sentinel-apps_clusternet_io_subscription_v1alpha1_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_broker_v1beta3_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_enterprise_v1beta3_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_plugin_v1beta3_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_broker_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_enterprise_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_plugin_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_rebalance_v1beta4_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_v2alpha1_manifest_test.go out/terratest-sentinel-apps_emqx_io_emqx_v2beta1_manifest_test.go out/terratest-sentinel-apps_emqx_io_rebalance_v2beta1_manifest_test.go out/terratest-sentinel-apps_gitlab_com_git_lab_v1beta1_manifest_test.go out/terratest-sentinel-apps_gitlab_com_runner_v1beta2_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_definition_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_definition_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_version_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_service_descriptor_v1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_backup_policy_template_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_cluster_version_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_class_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_resource_constraint_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_component_version_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_config_constraint_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_ops_definition_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_ops_request_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_service_descriptor_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeblocks_io_config_constraint_v1beta1_manifest_test.go out/terratest-sentinel-apps_kubedl_io_cron_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeedge_io_edge_application_v1alpha1_manifest_test.go out/terratest-sentinel-apps_kubeedge_io_node_group_v1alpha1_manifest_test.go out/terratest-sentinel-apps_m88i_io_nexus_v1alpha1_manifest_test.go out/terratest-sentinel-apps_redhat_com_cluster_impairment_v1alpha1_manifest_test.go out/terratest-sentinel-apps_daemon_set_v1_manifest_test.go out/terratest-sentinel-apps_deployment_v1_manifest_test.go out/terratest-sentinel-apps_replica_set_v1_manifest_test.go out/terratest-sentinel-apps_stateful_set_v1_manifest_test.go out/terratest-sentinel-aquasecurity_github_io_aqua_starboard_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_app_project_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_application_set_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_application_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_argo_cd_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_argo_cd_export_v1alpha1_manifest_test.go out/terratest-sentinel-argoproj_io_argo_cd_v1beta1_manifest_test.go out/terratest-sentinel-asdb_aerospike_com_aerospike_cluster_v1_manifest_test.go out/terratest-sentinel-asdb_aerospike_com_aerospike_cluster_v1beta1_manifest_test.go out/terratest-sentinel-atlasmap_io_atlas_map_v1alpha1_manifest_test.go out/terratest-sentinel-auth_ops42_org_aws_auth_sync_config_v1alpha1_manifest_test.go out/terratest-sentinel-authentication_stackable_tech_authentication_class_v1alpha1_manifest_test.go out/terratest-sentinel-authzed_com_spice_db_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-automation_kubensync_com_managed_resource_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_elastic_co_elasticsearch_autoscaler_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1beta2_manifest_test.go out/terratest-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1beta2_manifest_test.go out/terratest-sentinel-autoscaling_karmada_io_cron_federated_hpa_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_karmada_io_federated_hpa_v1alpha1_manifest_test.go out/terratest-sentinel-autoscaling_horizontal_pod_autoscaler_v1_manifest_test.go out/terratest-sentinel-autoscaling_horizontal_pod_autoscaler_v2_manifest_test.go out/terratest-sentinel-awx_ansible_com_awx_v1beta1_manifest_test.go out/terratest-sentinel-awx_ansible_com_awx_backup_v1beta1_manifest_test.go out/terratest-sentinel-awx_ansible_com_awx_restore_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_apim_service_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_api_mgmt_api_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_app_insights_api_key_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_app_insights_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_load_balancer_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_network_interface_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_public_ip_address_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_action_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_database_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_failover_group_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_server_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_managed_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sqlv_net_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_virtual_machine_extension_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_virtual_machine_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_vm_scale_set_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_blob_container_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_consumer_group_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_cosmos_db_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_eventhub_namespace_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_eventhub_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_key_vault_key_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_key_vault_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_database_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_server_administrator_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_server_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sqlv_net_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_database_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_user_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sqlv_net_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_redis_cache_action_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_redis_cache_firewall_rule_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_resource_group_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_storage_account_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_virtual_network_v1alpha1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_blob_container_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_server_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_my_sql_user_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha2_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_database_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_failover_group_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1beta1_manifest_test.go out/terratest-sentinel-azure_microsoft_com_azure_sql_server_v1beta1_manifest_test.go out/terratest-sentinel-b3scale_infra_run_bbb_frontend_v1_manifest_test.go out/terratest-sentinel-b3scale_io_bbb_frontend_v1_manifest_test.go out/terratest-sentinel-batch_cron_job_v1_manifest_test.go out/terratest-sentinel-batch_job_v1_manifest_test.go out/terratest-sentinel-batch_volcano_sh_job_v1alpha1_manifest_test.go out/terratest-sentinel-beat_k8s_elastic_co_beat_v1beta1_manifest_test.go out/terratest-sentinel-beegfs_csi_netapp_com_beegfs_driver_v1_manifest_test.go out/terratest-sentinel-binding_operators_coreos_com_service_binding_v1alpha1_manifest_test.go out/terratest-sentinel-bitnami_com_sealed_secret_v1alpha1_manifest_test.go out/terratest-sentinel-bmc_tinkerbell_org_job_v1alpha1_manifest_test.go out/terratest-sentinel-bmc_tinkerbell_org_machine_v1alpha1_manifest_test.go out/terratest-sentinel-bmc_tinkerbell_org_task_v1alpha1_manifest_test.go out/terratest-sentinel-boskos_k8s_io_drlc_object_v1_manifest_test.go out/terratest-sentinel-boskos_k8s_io_resource_object_v1_manifest_test.go out/terratest-sentinel-bpfman_io_bpf_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_fentry_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_fexit_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_kprobe_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_tc_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_tracepoint_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_uprobe_program_v1alpha1_manifest_test.go out/terratest-sentinel-bpfman_io_xdp_program_v1alpha1_manifest_test.go out/terratest-sentinel-bus_volcano_sh_command_v1alpha1_manifest_test.go out/terratest-sentinel-cache_kubedl_io_cache_backend_v1alpha1_manifest_test.go out/terratest-sentinel-caching_ibm_com_varnish_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-camel_apache_org_build_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_camel_catalog_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_kit_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_platform_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_profile_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_integration_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_kamelet_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_pipe_v1_manifest_test.go out/terratest-sentinel-camel_apache_org_kamelet_binding_v1alpha1_manifest_test.go out/terratest-sentinel-camel_apache_org_kamelet_v1alpha1_manifest_test.go out/terratest-sentinel-canaries_flanksource_com_canary_v1_manifest_test.go out/terratest-sentinel-canaries_flanksource_com_component_v1_manifest_test.go out/terratest-sentinel-canaries_flanksource_com_topology_v1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_tenant_v1alpha1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_active_doc_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_application_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_backend_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_custom_policy_definition_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_developer_account_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_developer_user_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_open_api_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_product_v1beta1_manifest_test.go out/terratest-sentinel-capabilities_3scale_net_proxy_config_promote_v1beta1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_capsule_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_tenant_v1alpha1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_tenant_v1beta1_manifest_test.go out/terratest-sentinel-capsule_clastix_io_capsule_configuration_v1beta2_manifest_test.go out/terratest-sentinel-capsule_clastix_io_tenant_v1beta2_manifest_test.go out/terratest-sentinel-cassandra_datastax_com_cassandra_datacenter_v1beta1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_block_pool_rados_namespace_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_block_pool_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_bucket_notification_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_bucket_topic_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_client_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_cluster_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_cosi_driver_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_filesystem_mirror_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_filesystem_sub_volume_group_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_filesystem_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_nfs_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_realm_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_store_user_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_store_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_zone_group_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_object_zone_v1_manifest_test.go out/terratest-sentinel-ceph_rook_io_ceph_rbd_mirror_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_certificate_request_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_certificate_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_cluster_issuer_v1_manifest_test.go out/terratest-sentinel-cert_manager_io_issuer_v1_manifest_test.go out/terratest-sentinel-certificates_k8s_io_certificate_signing_request_v1_manifest_test.go out/terratest-sentinel-certman_managed_openshift_io_certificate_request_v1alpha1_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_test_v1alpha1_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-chainsaw_kyverno_io_test_v1alpha2_manifest_test.go out/terratest-sentinel-chaos_mesh_org_aws_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_azure_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_block_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_dns_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_gcp_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_http_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_io_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_jvm_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_kernel_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_network_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_physical_machine_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_physical_machine_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_http_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_io_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_pod_network_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_remote_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_status_check_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_stress_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_time_chaos_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_workflow_node_v1alpha1_manifest_test.go out/terratest-sentinel-chaos_mesh_org_workflow_v1alpha1_manifest_test.go out/terratest-sentinel-chaosblade_io_chaos_blade_v1alpha1_manifest_test.go out/terratest-sentinel-charts_amd_com_amdgpu_v1alpha1_manifest_test.go out/terratest-sentinel-charts_flagsmith_com_flagsmith_v1alpha1_manifest_test.go out/terratest-sentinel-charts_helm_k8s_io_snyk_monitor_v1alpha1_manifest_test.go out/terratest-sentinel-charts_opdev_io_synapse_v1alpha1_manifest_test.go out/terratest-sentinel-charts_operatorhub_io_cockroachdb_v1alpha1_manifest_test.go out/terratest-sentinel-che_eclipse_org_kubernetes_image_puller_v1alpha1_manifest_test.go out/terratest-sentinel-chisel_operator_io_exit_node_provisioner_v1_manifest_test.go out/terratest-sentinel-chisel_operator_io_exit_node_v1_manifest_test.go out/terratest-sentinel-chisel_operator_io_exit_node_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_clusterwide_envoy_config_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_clusterwide_network_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_egress_gateway_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_envoy_config_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_external_workload_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_identity_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_local_redirect_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_network_policy_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_node_v2_manifest_test.go out/terratest-sentinel-cilium_io_cilium_bgp_peering_policy_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_cidr_group_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_endpoint_slice_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_l2_announcement_policy_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_load_balancer_ip_pool_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_node_config_v2alpha1_manifest_test.go out/terratest-sentinel-cilium_io_cilium_pod_ip_pool_v2alpha1_manifest_test.go out/terratest-sentinel-claudie_io_input_manifest_v1beta1_manifest_test.go out/terratest-sentinel-cloudformation_linki_space_stack_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_cache_policy_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_distribution_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_function_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_origin_request_policy_v1alpha1_manifest_test.go out/terratest-sentinel-cloudfront_services_k8s_aws_response_headers_policy_v1alpha1_manifest_test.go out/terratest-sentinel-cloudtrail_services_k8s_aws_event_data_store_v1alpha1_manifest_test.go out/terratest-sentinel-cloudtrail_services_k8s_aws_trail_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatch_aws_amazon_com_amazon_cloud_watch_agent_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatch_aws_amazon_com_instrumentation_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatch_services_k8s_aws_metric_alarm_v1alpha1_manifest_test.go out/terratest-sentinel-cloudwatchlogs_services_k8s_aws_log_group_v1alpha1_manifest_test.go out/terratest-sentinel-cluster_clusterpedia_io_cluster_sync_resources_v1alpha2_manifest_test.go out/terratest-sentinel-cluster_clusterpedia_io_pedia_cluster_v1alpha2_manifest_test.go out/terratest-sentinel-cluster_ipfs_io_circuit_relay_v1alpha1_manifest_test.go out/terratest-sentinel-cluster_ipfs_io_ipfs_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_pool_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_set_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_v1alpha3_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_class_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_pool_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_set_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_v1alpha4_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_class_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_cluster_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_deployment_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_health_check_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_pool_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_set_v1beta1_manifest_test.go out/terratest-sentinel-cluster_x_k8s_io_machine_v1beta1_manifest_test.go out/terratest-sentinel-clusters_clusternet_io_cluster_registration_request_v1beta1_manifest_test.go out/terratest-sentinel-clusters_clusternet_io_managed_cluster_v1beta1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_instance_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_quota_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_setup_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_cluster_template_v1alpha1_manifest_test.go out/terratest-sentinel-clustertemplate_openshift_io_config_v1alpha1_manifest_test.go out/terratest-sentinel-confidentialcontainers_org_cc_runtime_v1beta1_manifest_test.go out/terratest-sentinel-config_gatekeeper_sh_config_v1alpha1_manifest_test.go out/terratest-sentinel-config_grafana_com_project_config_v1_manifest_test.go out/terratest-sentinel-config_karmada_io_resource_interpreter_customization_v1alpha1_manifest_test.go out/terratest-sentinel-config_karmada_io_resource_interpreter_webhook_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-config_koordinator_sh_cluster_colocation_profile_v1alpha1_manifest_test.go out/terratest-sentinel-config_storageos_com_operator_config_v1_manifest_test.go out/terratest-sentinel-control_k8ssandra_io_cassandra_task_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_collected_status_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_federated_object_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_collected_status_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_federated_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_federated_object_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_federated_type_config_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_scheduler_plugin_webhook_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-core_kubeadmiral_io_scheduling_profile_v1alpha1_manifest_test.go out/terratest-sentinel-core_linuxsuren_github_com_a_test_v1alpha1_manifest_test.go out/terratest-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-core_strimzi_io_strimzi_pod_set_v1beta2_manifest_test.go out/terratest-sentinel-config_map_v1_manifest_test.go out/terratest-sentinel-endpoints_v1_manifest_test.go out/terratest-sentinel-limit_range_v1_manifest_test.go out/terratest-sentinel-namespace_v1_manifest_test.go out/terratest-sentinel-persistent_volume_claim_v1_manifest_test.go out/terratest-sentinel-persistent_volume_v1_manifest_test.go out/terratest-sentinel-pod_v1_manifest_test.go out/terratest-sentinel-replication_controller_v1_manifest_test.go out/terratest-sentinel-secret_v1_manifest_test.go out/terratest-sentinel-service_account_v1_manifest_test.go out/terratest-sentinel-service_v1_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_autoscaler_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_backup_restore_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_backup_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_bucket_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_cluster_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_collection_group_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_collection_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_ephemeral_bucket_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_group_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_memcached_bucket_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_migration_replication_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_replication_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_role_binding_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_scope_group_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_scope_v2_manifest_test.go out/terratest-sentinel-couchbase_com_couchbase_user_v2_manifest_test.go out/terratest-sentinel-craftypath_github_io_sops_secret_v1alpha1_manifest_test.go out/terratest-sentinel-crane_konveyor_io_operator_config_v1alpha1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_bgp_configuration_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_bgp_filter_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_bgp_peer_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_block_affinity_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_calico_node_status_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_cluster_information_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_felix_configuration_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_global_network_policy_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_global_network_set_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_host_endpoint_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ipam_block_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ipam_config_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ipam_handle_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ip_pool_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_ip_reservation_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_kube_controllers_configuration_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_network_policy_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_network_set_v1_manifest_test.go out/terratest-sentinel-crd_projectcalico_org_tier_v1_manifest_test.go out/terratest-sentinel-data_fluid_io_alluxio_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_data_backup_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_data_load_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_dataset_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_goose_fs_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_jindo_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_juice_fs_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_thin_runtime_profile_v1alpha1_manifest_test.go out/terratest-sentinel-data_fluid_io_thin_runtime_v1alpha1_manifest_test.go out/terratest-sentinel-databases_schemahero_io_database_v1alpha4_manifest_test.go out/terratest-sentinel-databases_spotahome_com_redis_failover_v1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_agent_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_metric_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_monitor_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_slo_v1alpha1_manifest_test.go out/terratest-sentinel-datadoghq_com_datadog_agent_v2alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_action_set_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_policy_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_repo_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_backup_v1alpha1_manifest_test.go out/terratest-sentinel-dataprotection_kubeblocks_io_restore_v1alpha1_manifest_test.go out/terratest-sentinel-designer_kaoto_io_kaoto_v1alpha1_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_model_v1alpha2_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_v1alpha2_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_model_v1beta1_manifest_test.go out/terratest-sentinel-devices_kubeedge_io_device_v1beta1_manifest_test.go out/terratest-sentinel-devops_kubesphere_io_releaser_controller_v1alpha1_manifest_test.go out/terratest-sentinel-devops_kubesphere_io_releaser_v1alpha1_manifest_test.go out/terratest-sentinel-dex_gpu_ninja_com_dex_identity_provider_v1alpha1_manifest_test.go out/terratest-sentinel-dex_gpu_ninja_com_dex_o_auth2_client_v1alpha1_manifest_test.go out/terratest-sentinel-dex_gpu_ninja_com_dex_user_v1alpha1_manifest_test.go out/terratest-sentinel-digitalis_io_vals_secret_v1_manifest_test.go out/terratest-sentinel-digitalis_io_db_secret_v1beta1_manifest_test.go out/terratest-sentinel-discovery_k8s_io_endpoint_slice_v1_manifest_test.go out/terratest-sentinel-documentdb_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-documentdb_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/terratest-sentinel-documentdb_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-druid_apache_org_druid_v1alpha1_manifest_test.go out/terratest-sentinel-druid_stackable_tech_druid_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-dynamodb_services_k8s_aws_backup_v1alpha1_manifest_test.go out/terratest-sentinel-dynamodb_services_k8s_aws_global_table_v1alpha1_manifest_test.go out/terratest-sentinel-dynamodb_services_k8s_aws_table_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_dhcp_options_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_elastic_ip_address_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_instance_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_internet_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_nat_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_route_table_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_security_group_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_subnet_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_transit_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_vpc_v1alpha1_manifest_test.go out/terratest-sentinel-ec2_services_k8s_aws_vpc_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-ecr_services_k8s_aws_pull_through_cache_rule_v1alpha1_manifest_test.go out/terratest-sentinel-ecr_services_k8s_aws_repository_v1alpha1_manifest_test.go out/terratest-sentinel-edc_stackable_tech_edc_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-efs_services_k8s_aws_access_point_v1alpha1_manifest_test.go out/terratest-sentinel-efs_services_k8s_aws_file_system_v1alpha1_manifest_test.go out/terratest-sentinel-efs_services_k8s_aws_mount_target_v1alpha1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_cluster_endpoint_slice_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_cluster_info_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_cluster_policy_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_endpoint_slice_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_gateway_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_policy_v1beta1_manifest_test.go out/terratest-sentinel-egressgateway_spidernet_io_egress_tunnel_v1beta1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_addon_v1alpha1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_fargate_profile_v1alpha1_manifest_test.go out/terratest-sentinel-eks_services_k8s_aws_nodegroup_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_cache_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_cache_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_replication_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_user_group_v1alpha1_manifest_test.go out/terratest-sentinel-elasticache_services_k8s_aws_user_v1alpha1_manifest_test.go out/terratest-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1_manifest_test.go out/terratest-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1beta1_manifest_test.go out/terratest-sentinel-elbv2_k8s_aws_target_group_binding_v1alpha1_manifest_test.go out/terratest-sentinel-elbv2_k8s_aws_ingress_class_params_v1beta1_manifest_test.go out/terratest-sentinel-elbv2_k8s_aws_target_group_binding_v1beta1_manifest_test.go out/terratest-sentinel-emrcontainers_services_k8s_aws_job_run_v1alpha1_manifest_test.go out/terratest-sentinel-emrcontainers_services_k8s_aws_virtual_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-ensembleoss_io_cluster_v1_manifest_test.go out/terratest-sentinel-ensembleoss_io_resource_v1_manifest_test.go out/terratest-sentinel-enterprise_gloo_solo_io_auth_config_v1_manifest_test.go out/terratest-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1_manifest_test.go out/terratest-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1beta1_manifest_test.go out/terratest-sentinel-events_k8s_io_event_v1_manifest_test.go out/terratest-sentinel-everest_percona_com_backup_storage_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_cluster_backup_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_cluster_restore_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_database_engine_v1alpha1_manifest_test.go out/terratest-sentinel-everest_percona_com_monitoring_config_v1alpha1_manifest_test.go out/terratest-sentinel-execution_furiko_io_job_config_v1alpha1_manifest_test.go out/terratest-sentinel-execution_furiko_io_job_v1alpha1_manifest_test.go out/terratest-sentinel-executor_testkube_io_executor_v1_manifest_test.go out/terratest-sentinel-executor_testkube_io_webhook_v1_manifest_test.go out/terratest-sentinel-expansion_gatekeeper_sh_expansion_template_v1alpha1_manifest_test.go out/terratest-sentinel-expansion_gatekeeper_sh_expansion_template_v1beta1_manifest_test.go out/terratest-sentinel-extensions_istio_io_wasm_plugin_v1alpha1_manifest_test.go out/terratest-sentinel-extensions_kubeblocks_io_addon_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_cluster_secret_store_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_external_secret_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_secret_store_v1alpha1_manifest_test.go out/terratest-sentinel-external_secrets_io_cluster_external_secret_v1beta1_manifest_test.go out/terratest-sentinel-external_secrets_io_cluster_secret_store_v1beta1_manifest_test.go out/terratest-sentinel-external_secrets_io_external_secret_v1beta1_manifest_test.go out/terratest-sentinel-external_secrets_io_secret_store_v1beta1_manifest_test.go out/terratest-sentinel-externaldata_gatekeeper_sh_provider_v1alpha1_manifest_test.go out/terratest-sentinel-externaldata_gatekeeper_sh_provider_v1beta1_manifest_test.go out/terratest-sentinel-externaldns_k8s_io_dns_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-externaldns_nginx_org_dns_endpoint_v1_manifest_test.go out/terratest-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_template_v1alpha1_manifest_test.go out/terratest-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_v1alpha1_manifest_test.go out/terratest-sentinel-flagger_app_alert_provider_v1beta1_manifest_test.go out/terratest-sentinel-flagger_app_canary_v1beta1_manifest_test.go out/terratest-sentinel-flagger_app_metric_template_v1beta1_manifest_test.go out/terratest-sentinel-flink_apache_org_flink_deployment_v1beta1_manifest_test.go out/terratest-sentinel-flink_apache_org_flink_session_job_v1beta1_manifest_test.go out/terratest-sentinel-flow_volcano_sh_job_flow_v1alpha1_manifest_test.go out/terratest-sentinel-flow_volcano_sh_job_template_v1alpha1_manifest_test.go out/terratest-sentinel-flowcontrol_apiserver_k8s_io_flow_schema_v1beta3_manifest_test.go out/terratest-sentinel-flowcontrol_apiserver_k8s_io_priority_level_configuration_v1beta3_manifest_test.go out/terratest-sentinel-flows_netobserv_io_flow_collector_v1alpha1_manifest_test.go out/terratest-sentinel-flows_netobserv_io_flow_collector_v1beta1_manifest_test.go out/terratest-sentinel-flows_netobserv_io_flow_collector_v1beta2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_filter_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_fluent_bit_config_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_input_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_output_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_cluster_parser_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_collector_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_filter_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_fluent_bit_config_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_fluent_bit_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_output_v1alpha2_manifest_test.go out/terratest-sentinel-fluentbit_fluent_io_parser_v1alpha2_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_filter_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_fluentd_config_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_input_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_cluster_output_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_filter_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_fluentd_config_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_fluentd_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_input_v1alpha1_manifest_test.go out/terratest-sentinel-fluentd_fluent_io_output_v1alpha1_manifest_test.go out/terratest-sentinel-flux_framework_org_mini_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-flux_framework_org_mini_cluster_v1alpha2_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_forklift_controller_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_hook_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_host_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_migration_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_network_map_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_openstack_volume_populator_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_ovirt_volume_populator_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_plan_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_provider_v1beta1_manifest_test.go out/terratest-sentinel-forklift_konveyor_io_storage_map_v1beta1_manifest_test.go out/terratest-sentinel-fossul_io_backup_config_v1_manifest_test.go out/terratest-sentinel-fossul_io_backup_schedule_v1_manifest_test.go out/terratest-sentinel-fossul_io_backup_v1_manifest_test.go out/terratest-sentinel-fossul_io_fossul_v1_manifest_test.go out/terratest-sentinel-fossul_io_restore_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_class_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_grpc_route_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_http_route_v1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_tls_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_udp_route_v1alpha2_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_gateway_v1beta1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_http_route_v1beta1_manifest_test.go out/terratest-sentinel-gateway_networking_k8s_io_reference_grant_v1beta1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_client_settings_policy_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_nginx_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_nginx_proxy_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_nginx_org_observability_policy_v1alpha1_manifest_test.go out/terratest-sentinel-gateway_solo_io_gateway_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_matchable_http_gateway_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_route_option_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_route_table_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_virtual_host_option_v1_manifest_test.go out/terratest-sentinel-gateway_solo_io_virtual_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_auth_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_consul_resolver_v1_manifest_test.go out/terratest-sentinel-getambassador_io_dev_portal_v1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_endpoint_resolver_v1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_service_resolver_v1_manifest_test.go out/terratest-sentinel-getambassador_io_log_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_mapping_v1_manifest_test.go out/terratest-sentinel-getambassador_io_module_v1_manifest_test.go out/terratest-sentinel-getambassador_io_rate_limit_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_tcp_mapping_v1_manifest_test.go out/terratest-sentinel-getambassador_io_tls_context_v1_manifest_test.go out/terratest-sentinel-getambassador_io_tracing_service_v1_manifest_test.go out/terratest-sentinel-getambassador_io_auth_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_consul_resolver_v2_manifest_test.go out/terratest-sentinel-getambassador_io_dev_portal_v2_manifest_test.go out/terratest-sentinel-getambassador_io_host_v2_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_endpoint_resolver_v2_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_service_resolver_v2_manifest_test.go out/terratest-sentinel-getambassador_io_log_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_mapping_v2_manifest_test.go out/terratest-sentinel-getambassador_io_module_v2_manifest_test.go out/terratest-sentinel-getambassador_io_rate_limit_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_tcp_mapping_v2_manifest_test.go out/terratest-sentinel-getambassador_io_tls_context_v2_manifest_test.go out/terratest-sentinel-getambassador_io_tracing_service_v2_manifest_test.go out/terratest-sentinel-getambassador_io_auth_service_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_consul_resolver_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_dev_portal_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_host_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_endpoint_resolver_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_kubernetes_service_resolver_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_listener_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_log_service_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_mapping_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_module_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_rate_limit_service_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_tcp_mapping_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_tls_context_v3alpha1_manifest_test.go out/terratest-sentinel-getambassador_io_tracing_service_v3alpha1_manifest_test.go out/terratest-sentinel-gitops_hybrid_cloud_patterns_io_pattern_v1alpha1_manifest_test.go out/terratest-sentinel-gloo_solo_io_proxy_v1_manifest_test.go out/terratest-sentinel-gloo_solo_io_settings_v1_manifest_test.go out/terratest-sentinel-gloo_solo_io_upstream_group_v1_manifest_test.go out/terratest-sentinel-gloo_solo_io_upstream_v1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_dashboard_v1beta1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_datasource_v1beta1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_folder_v1beta1_manifest_test.go out/terratest-sentinel-grafana_integreatly_org_grafana_v1beta1_manifest_test.go out/terratest-sentinel-graphql_gloo_solo_io_graph_ql_api_v1beta1_manifest_test.go out/terratest-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_class_v1alpha1_manifest_test.go out/terratest-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_content_v1alpha1_manifest_test.go out/terratest-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_cron_hot_backup_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_hazelcast_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_hot_backup_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_management_center_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_map_v1alpha1_manifest_test.go out/terratest-sentinel-hazelcast_com_wan_replication_v1alpha1_manifest_test.go out/terratest-sentinel-hbase_stackable_tech_hbase_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-hdfs_stackable_tech_hdfs_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-helm_sigstore_dev_rekor_v1alpha1_manifest_test.go out/terratest-sentinel-helm_toolkit_fluxcd_io_helm_release_v2_manifest_test.go out/terratest-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta1_manifest_test.go out/terratest-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta2_manifest_test.go out/terratest-sentinel-hive_openshift_io_checkpoint_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_claim_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_deployment_customization_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_deployment_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_deprovision_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_image_set_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_pool_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_provision_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_relocate_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_cluster_state_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_dns_zone_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_hive_config_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_machine_pool_name_lease_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_machine_pool_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_selector_sync_identity_provider_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_selector_sync_set_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_sync_identity_provider_v1_manifest_test.go out/terratest-sentinel-hive_openshift_io_sync_set_v1_manifest_test.go out/terratest-sentinel-hive_stackable_tech_hive_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-hiveinternal_openshift_io_cluster_sync_lease_v1alpha1_manifest_test.go out/terratest-sentinel-hiveinternal_openshift_io_cluster_sync_v1alpha1_manifest_test.go out/terratest-sentinel-hiveinternal_openshift_io_fake_cluster_install_v1alpha1_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_hierarchical_resource_quota_v1alpha2_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_hierarchy_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_hnc_configuration_v1alpha2_manifest_test.go out/terratest-sentinel-hnc_x_k8s_io_subnamespace_anchor_v1alpha2_manifest_test.go out/terratest-sentinel-hyperfoil_io_horreum_v1alpha1_manifest_test.go out/terratest-sentinel-hyperfoil_io_hyperfoil_v1alpha2_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_group_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_instance_profile_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_open_id_connect_provider_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_policy_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_role_v1alpha1_manifest_test.go out/terratest-sentinel-iam_services_k8s_aws_user_v1alpha1_manifest_test.go out/terratest-sentinel-ibmcloud_ibm_com_composable_v1alpha1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta1_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta2_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta2_manifest_test.go out/terratest-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta2_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_event_bridge_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_event_driven_ingestion_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_instance_binding_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicom_study_binding_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dicomweb_ingestion_service_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dimse_ingestion_service_v1alpha1_manifest_test.go out/terratest-sentinel-imaging_ingestion_alvearie_org_dimse_proxy_v1alpha1_manifest_test.go out/terratest-sentinel-inference_kubedl_io_elastic_batch_job_v1alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_infinispan_v1_manifest_test.go out/terratest-sentinel-infinispan_org_backup_v2alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_batch_v2alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_cache_v2alpha1_manifest_test.go out/terratest-sentinel-infinispan_org_restore_v2alpha1_manifest_test.go out/terratest-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha1_manifest_test.go out/terratest-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_template_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_template_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_v1alpha1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha3_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha4_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1beta1_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta2_manifest_test.go out/terratest-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta2_manifest_test.go out/terratest-sentinel-installation_mattermost_com_mattermost_v1beta1_manifest_test.go out/terratest-sentinel-instana_io_instana_agent_v1_manifest_test.go out/terratest-sentinel-integration_rock8s_com_deferred_resource_v1beta1_manifest_test.go out/terratest-sentinel-integration_rock8s_com_plug_v1beta1_manifest_test.go out/terratest-sentinel-integration_rock8s_com_socket_v1beta1_manifest_test.go out/terratest-sentinel-iot_eclipse_org_ditto_v1alpha1_manifest_test.go out/terratest-sentinel-iot_eclipse_org_hawkbit_v1alpha1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1alpha1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_v1alpha1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1beta1_manifest_test.go out/terratest-sentinel-ipam_cluster_x_k8s_io_ip_address_v1beta1_manifest_test.go out/terratest-sentinel-isindir_github_com_sops_secret_v1alpha1_manifest_test.go out/terratest-sentinel-isindir_github_com_sops_secret_v1alpha2_manifest_test.go out/terratest-sentinel-isindir_github_com_sops_secret_v1alpha3_manifest_test.go out/terratest-sentinel-jaegertracing_io_jaeger_v1_manifest_test.go out/terratest-sentinel-jobset_x_k8s_io_job_set_v1alpha2_manifest_test.go out/terratest-sentinel-jobsmanager_raczylo_com_managed_job_v1beta1_manifest_test.go out/terratest-sentinel-k6_io_k6_v1alpha1_manifest_test.go out/terratest-sentinel-k6_io_private_load_zone_v1alpha1_manifest_test.go out/terratest-sentinel-k6_io_test_run_v1alpha1_manifest_test.go out/terratest-sentinel-k8gb_absa_oss_gslb_v1beta1_manifest_test.go out/terratest-sentinel-k8s_keycloak_org_keycloak_realm_import_v2alpha1_manifest_test.go out/terratest-sentinel-k8s_keycloak_org_keycloak_v2alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_backup_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_connection_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_database_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_grant_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_maria_db_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_max_scale_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_restore_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_sql_job_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_mariadb_com_user_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_global_configuration_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_policy_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_transport_server_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_virtual_server_route_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_virtual_server_v1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_global_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_policy_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_nginx_org_transport_server_v1alpha1_manifest_test.go out/terratest-sentinel-k8s_otterize_com_client_intents_v1alpha2_manifest_test.go out/terratest-sentinel-k8s_otterize_com_kafka_server_config_v1alpha2_manifest_test.go out/terratest-sentinel-k8s_otterize_com_protected_service_v1alpha2_manifest_test.go out/terratest-sentinel-k8s_otterize_com_client_intents_v1alpha3_manifest_test.go out/terratest-sentinel-k8s_otterize_com_kafka_server_config_v1alpha3_manifest_test.go out/terratest-sentinel-k8s_otterize_com_protected_service_v1alpha3_manifest_test.go out/terratest-sentinel-k8up_io_archive_v1_manifest_test.go out/terratest-sentinel-k8up_io_backup_v1_manifest_test.go out/terratest-sentinel-k8up_io_check_v1_manifest_test.go out/terratest-sentinel-k8up_io_pre_backup_pod_v1_manifest_test.go out/terratest-sentinel-k8up_io_prune_v1_manifest_test.go out/terratest-sentinel-k8up_io_restore_v1_manifest_test.go out/terratest-sentinel-k8up_io_schedule_v1_manifest_test.go out/terratest-sentinel-k8up_io_snapshot_v1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_cruise_control_operation_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_kafka_topic_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_kafka_user_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_banzaicloud_io_kafka_cluster_v1beta1_manifest_test.go out/terratest-sentinel-kafka_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_stackable_tech_kafka_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_topic_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_user_v1alpha1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_topic_v1beta1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_user_v1beta1_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_bridge_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_connect_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_connector_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_mirror_maker2_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_mirror_maker_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_node_pool_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_rebalance_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_topic_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_user_v1beta2_manifest_test.go out/terratest-sentinel-kafka_strimzi_io_kafka_v1beta2_manifest_test.go out/terratest-sentinel-kamaji_clastix_io_data_store_v1alpha1_manifest_test.go out/terratest-sentinel-kamaji_clastix_io_tenant_control_plane_v1alpha1_manifest_test.go out/terratest-sentinel-karpenter_k8s_aws_ec2_node_class_v1_manifest_test.go out/terratest-sentinel-karpenter_k8s_aws_ec2_node_class_v1beta1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_claim_v1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_pool_v1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_claim_v1beta1_manifest_test.go out/terratest-sentinel-karpenter_sh_node_pool_v1beta1_manifest_test.go out/terratest-sentinel-keda_sh_cluster_trigger_authentication_v1alpha1_manifest_test.go out/terratest-sentinel-keda_sh_scaled_job_v1alpha1_manifest_test.go out/terratest-sentinel-keda_sh_scaled_object_v1alpha1_manifest_test.go out/terratest-sentinel-keda_sh_trigger_authentication_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_k8s_reddec_net_keycloak_client_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_backup_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_client_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_realm_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_user_v1alpha1_manifest_test.go out/terratest-sentinel-keycloak_org_keycloak_v1alpha1_manifest_test.go out/terratest-sentinel-keyspaces_services_k8s_aws_keyspace_v1alpha1_manifest_test.go out/terratest-sentinel-keyspaces_services_k8s_aws_table_v1alpha1_manifest_test.go out/terratest-sentinel-kiali_io_kiali_v1alpha1_manifest_test.go out/terratest-sentinel-kibana_k8s_elastic_co_kibana_v1_manifest_test.go out/terratest-sentinel-kibana_k8s_elastic_co_kibana_v1beta1_manifest_test.go out/terratest-sentinel-kinesis_services_k8s_aws_stream_v1alpha1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_module_v1beta1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_node_modules_config_v1beta1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta1_manifest_test.go out/terratest-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta2_manifest_test.go out/terratest-sentinel-kms_services_k8s_aws_alias_v1alpha1_manifest_test.go out/terratest-sentinel-kms_services_k8s_aws_grant_v1alpha1_manifest_test.go out/terratest-sentinel-kms_services_k8s_aws_key_v1alpha1_manifest_test.go out/terratest-sentinel-kuadrant_io_dns_record_v1alpha1_manifest_test.go out/terratest-sentinel-kuadrant_io_managed_zone_v1alpha1_manifest_test.go out/terratest-sentinel-kuadrant_io_kuadrant_v1beta1_manifest_test.go out/terratest-sentinel-kuadrant_io_auth_policy_v1beta2_manifest_test.go out/terratest-sentinel-kuadrant_io_rate_limit_policy_v1beta2_manifest_test.go out/terratest-sentinel-kube_green_com_sleep_info_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_cluster_operation_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_local_artifact_set_v1alpha1_manifest_test.go out/terratest-sentinel-kubean_io_manifest_v1alpha1_manifest_test.go out/terratest-sentinel-kubecost_com_turndown_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-kubevious_io_workload_profile_v1alpha1_manifest_test.go out/terratest-sentinel-kubevious_io_workload_v1alpha1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_cluster_queue_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go out/terratest-sentinel-kueue_x_k8s_io_workload_v1beta1_manifest_test.go out/terratest-sentinel-kuma_io_circuit_breaker_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_container_patch_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_dataplane_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_dataplane_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_external_service_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_fault_injection_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_health_check_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_access_log_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_circuit_breaker_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_fault_injection_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_config_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_instance_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_health_check_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_http_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_load_balancing_strategy_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_proxy_patch_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_rate_limit_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_retry_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_tcp_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_timeout_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_trace_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_traffic_permission_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_mesh_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_proxy_template_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_rate_limit_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_retry_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_service_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_timeout_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_log_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_permission_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_route_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_traffic_trace_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_virtual_outbound_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_egress_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_egress_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_ingress_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_ingress_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_insight_v1alpha1_manifest_test.go out/terratest-sentinel-kuma_io_zone_v1alpha1_manifest_test.go out/terratest-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1_manifest_test.go out/terratest-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta1_manifest_test.go out/terratest-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_policy_v1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_v1_manifest_test.go out/terratest-sentinel-kyverno_io_admission_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_background_scan_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_admission_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_background_scan_report_v1alpha2_manifest_test.go out/terratest-sentinel-kyverno_io_update_request_v1beta1_manifest_test.go out/terratest-sentinel-kyverno_io_admission_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_background_scan_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cleanup_policy_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_admission_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_background_scan_report_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_cleanup_policy_v2_manifest_test.go out/terratest-sentinel-kyverno_io_policy_exception_v2_manifest_test.go out/terratest-sentinel-kyverno_io_update_request_v2_manifest_test.go out/terratest-sentinel-kyverno_io_cleanup_policy_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_cleanup_policy_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_global_context_entry_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_exception_v2alpha1_manifest_test.go out/terratest-sentinel-kyverno_io_cleanup_policy_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_cleanup_policy_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_cluster_policy_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_exception_v2beta1_manifest_test.go out/terratest-sentinel-kyverno_io_policy_v2beta1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_alias_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_code_signing_config_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_event_source_mapping_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_function_url_config_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_function_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_layer_version_v1alpha1_manifest_test.go out/terratest-sentinel-lambda_services_k8s_aws_version_v1alpha1_manifest_test.go out/terratest-sentinel-lb_lbconfig_carlosedp_com_external_load_balancer_v1_manifest_test.go out/terratest-sentinel-leaksignal_com_cluster_leaksignal_istio_v1_manifest_test.go out/terratest-sentinel-leaksignal_com_leaksignal_istio_v1_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta4_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta4_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta4_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta5_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta5_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta5_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta6_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta6_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta6_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta7_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta7_manifest_test.go out/terratest-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta7_manifest_test.go out/terratest-sentinel-limitador_kuadrant_io_limitador_v1alpha1_manifest_test.go out/terratest-sentinel-listeners_stackable_tech_listener_class_v1alpha1_manifest_test.go out/terratest-sentinel-listeners_stackable_tech_listener_v1alpha1_manifest_test.go out/terratest-sentinel-listeners_stackable_tech_pod_listeners_v1alpha1_manifest_test.go out/terratest-sentinel-litmuschaos_io_chaos_engine_v1alpha1_manifest_test.go out/terratest-sentinel-litmuschaos_io_chaos_experiment_v1alpha1_manifest_test.go out/terratest-sentinel-litmuschaos_io_chaos_result_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_flow_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_output_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_flow_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_logging_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_output_v1alpha1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_cluster_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_logging_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_node_agent_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_cluster_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_cluster_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_flow_v1beta1_manifest_test.go out/terratest-sentinel-logging_banzaicloud_io_syslog_ng_output_v1beta1_manifest_test.go out/terratest-sentinel-logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest_test.go out/terratest-sentinel-logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest_test.go out/terratest-sentinel-loki_grafana_com_alerting_rule_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_loki_stack_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_recording_rule_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_ruler_config_v1_manifest_test.go out/terratest-sentinel-loki_grafana_com_alerting_rule_v1beta1_manifest_test.go out/terratest-sentinel-loki_grafana_com_loki_stack_v1beta1_manifest_test.go out/terratest-sentinel-loki_grafana_com_recording_rule_v1beta1_manifest_test.go out/terratest-sentinel-loki_grafana_com_ruler_config_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_data_source_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_manager_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backup_target_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backup_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backup_volume_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_engine_image_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_engine_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_instance_manager_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_node_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_recurring_job_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_replica_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_setting_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_share_manager_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_volume_v1beta1_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_data_source_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_manager_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backing_image_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_backing_image_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_target_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_backup_volume_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_engine_image_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_engine_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_instance_manager_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_node_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_orphan_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_recurring_job_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_replica_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_setting_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_share_manager_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_snapshot_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_support_bundle_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_system_backup_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_system_restore_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_volume_attachment_v1beta2_manifest_test.go out/terratest-sentinel-longhorn_io_volume_v1beta2_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_moodle_v1alpha1_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_nginx_v1alpha1_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_phpfpm_v1alpha1_manifest_test.go out/terratest-sentinel-m4e_krestomat_io_routine_v1alpha1_manifest_test.go out/terratest-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_template_v1alpha1_manifest_test.go out/terratest-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_v1alpha1_manifest_test.go out/terratest-sentinel-maps_k8s_elastic_co_elastic_maps_server_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_backup_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_connection_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_database_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_grant_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_maria_db_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_restore_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_sql_job_v1alpha1_manifest_test.go out/terratest-sentinel-mariadb_mmontes_io_user_v1alpha1_manifest_test.go out/terratest-sentinel-marin3r_3scale_net_envoy_config_revision_v1alpha1_manifest_test.go out/terratest-sentinel-marin3r_3scale_net_envoy_config_v1alpha1_manifest_test.go out/terratest-sentinel-mattermost_com_cluster_installation_v1alpha1_manifest_test.go out/terratest-sentinel-mattermost_com_mattermost_restore_db_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_acl_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-memorydb_services_k8s_aws_user_v1alpha1_manifest_test.go out/terratest-sentinel-metacontroller_k8s_io_composite_controller_v1alpha1_manifest_test.go out/terratest-sentinel-metacontroller_k8s_io_controller_revision_v1alpha1_manifest_test.go out/terratest-sentinel-metacontroller_k8s_io_decorator_controller_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_bare_metal_host_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_bmc_event_subscription_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_data_image_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_firmware_schema_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_hardware_data_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_host_firmware_components_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_host_firmware_settings_v1alpha1_manifest_test.go out/terratest-sentinel-metal3_io_preprovisioning_image_v1alpha1_manifest_test.go out/terratest-sentinel-minio_min_io_tenant_v2_manifest_test.go out/terratest-sentinel-mirrors_kts_studio_secret_mirror_v1alpha1_manifest_test.go out/terratest-sentinel-mirrors_kts_studio_secret_mirror_v1alpha2_manifest_test.go out/terratest-sentinel-model_kubedl_io_model_v1alpha1_manifest_test.go out/terratest-sentinel-model_kubedl_io_model_version_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_alertmanager_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_pod_monitor_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_probe_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_prometheus_rule_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_prometheus_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_service_monitor_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_thanos_ruler_v1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_alertmanager_config_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_prometheus_agent_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_scrape_config_v1alpha1_manifest_test.go out/terratest-sentinel-monitoring_coreos_com_alertmanager_config_v1beta1_manifest_test.go out/terratest-sentinel-monocle_monocle_change_metrics_io_monocle_v1alpha1_manifest_test.go out/terratest-sentinel-mq_services_k8s_aws_broker_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_info_import_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_label_identity_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_member_cluster_announce_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_multi_cluster_config_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_resource_export_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_resource_import_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_claim_v1alpha2_manifest_test.go out/terratest-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha2_manifest_test.go out/terratest-sentinel-multicluster_x_k8s_io_applied_work_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_x_k8s_io_service_import_v1alpha1_manifest_test.go out/terratest-sentinel-multicluster_x_k8s_io_work_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_metadata_v1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_v1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_modify_set_v1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_image_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_metadata_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_modify_set_v1alpha1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_metadata_v1beta1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_assign_v1beta1_manifest_test.go out/terratest-sentinel-mutations_gatekeeper_sh_modify_set_v1beta1_manifest_test.go out/terratest-sentinel-nativestor_alauda_io_raw_device_v1_manifest_test.go out/terratest-sentinel-netchecks_io_network_assertion_v1_manifest_test.go out/terratest-sentinel-networkfirewall_services_k8s_aws_firewall_policy_v1alpha1_manifest_test.go out/terratest-sentinel-networkfirewall_services_k8s_aws_firewall_v1alpha1_manifest_test.go out/terratest-sentinel-networkfirewall_services_k8s_aws_rule_group_v1alpha1_manifest_test.go out/terratest-sentinel-networking_gke_io_gcp_backend_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_gcp_gateway_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_health_check_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_lb_policy_v1_manifest_test.go out/terratest-sentinel-networking_gke_io_managed_certificate_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_destination_rule_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_gateway_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_service_entry_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_sidecar_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_virtual_service_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_entry_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_group_v1_manifest_test.go out/terratest-sentinel-networking_istio_io_destination_rule_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_envoy_filter_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_gateway_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_service_entry_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_sidecar_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_virtual_service_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_entry_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_group_v1alpha3_manifest_test.go out/terratest-sentinel-networking_istio_io_destination_rule_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_gateway_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_proxy_config_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_service_entry_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_sidecar_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_virtual_service_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_entry_v1beta1_manifest_test.go out/terratest-sentinel-networking_istio_io_workload_group_v1beta1_manifest_test.go out/terratest-sentinel-networking_k8s_aws_policy_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-networking_k8s_io_ingress_class_v1_manifest_test.go out/terratest-sentinel-networking_k8s_io_ingress_v1_manifest_test.go out/terratest-sentinel-networking_k8s_io_network_policy_v1_manifest_test.go out/terratest-sentinel-networking_karmada_io_multi_cluster_ingress_v1alpha1_manifest_test.go out/terratest-sentinel-networking_karmada_io_multi_cluster_service_v1alpha1_manifest_test.go out/terratest-sentinel-nfd_k8s_sigs_io_node_feature_rule_v1alpha1_manifest_test.go out/terratest-sentinel-nfd_kubernetes_io_node_feature_discovery_v1_manifest_test.go out/terratest-sentinel-nfd_kubernetes_io_node_feature_rule_v1alpha1_manifest_test.go out/terratest-sentinel-nifi_stackable_tech_nifi_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-nodeinfo_volcano_sh_numatopology_v1alpha1_manifest_test.go out/terratest-sentinel-notebook_kubedl_io_notebook_v1alpha1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_receiver_v1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_alert_v1beta1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_provider_v1beta1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta1_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_alert_v1beta2_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_provider_v1beta2_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta2_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_alert_v1beta3_manifest_test.go out/terratest-sentinel-notification_toolkit_fluxcd_io_provider_v1beta3_manifest_test.go out/terratest-sentinel-objectbucket_io_object_bucket_claim_v1alpha1_manifest_test.go out/terratest-sentinel-objectbucket_io_object_bucket_v1alpha1_manifest_test.go out/terratest-sentinel-ocmagent_managed_openshift_io_managed_fleet_notification_v1alpha1_manifest_test.go out/terratest-sentinel-ocmagent_managed_openshift_io_managed_notification_v1alpha1_manifest_test.go out/terratest-sentinel-ocmagent_managed_openshift_io_ocm_agent_v1alpha1_manifest_test.go out/terratest-sentinel-onepassword_com_one_password_item_v1_manifest_test.go out/terratest-sentinel-opa_stackable_tech_opa_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-opensearchservice_services_k8s_aws_domain_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_instrumentation_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_op_amp_bridge_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_open_telemetry_collector_v1alpha1_manifest_test.go out/terratest-sentinel-opentelemetry_io_open_telemetry_collector_v1beta1_manifest_test.go out/terratest-sentinel-operations_kubeedge_io_node_upgrade_job_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_csp_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_database_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_enforcer_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_kube_enforcer_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_scanner_v1alpha1_manifest_test.go out/terratest-sentinel-operator_aquasec_com_aqua_server_v1alpha1_manifest_test.go out/terratest-sentinel-operator_authorino_kuadrant_io_authorino_v1beta1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha1_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_addon_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha2_manifest_test.go out/terratest-sentinel-operator_cryostat_io_cryostat_v1beta1_manifest_test.go out/terratest-sentinel-operator_cryostat_io_cryostat_v1beta2_manifest_test.go out/terratest-sentinel-operator_knative_dev_knative_eventing_v1beta1_manifest_test.go out/terratest-sentinel-operator_knative_dev_knative_serving_v1beta1_manifest_test.go out/terratest-sentinel-operator_marin3r_3scale_net_discovery_service_certificate_v1alpha1_manifest_test.go out/terratest-sentinel-operator_marin3r_3scale_net_discovery_service_v1alpha1_manifest_test.go out/terratest-sentinel-operator_marin3r_3scale_net_envoy_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-operator_open_cluster_management_io_cluster_manager_v1_manifest_test.go out/terratest-sentinel-operator_open_cluster_management_io_klusterlet_v1_manifest_test.go out/terratest-sentinel-operator_shipwright_io_shipwright_build_v1alpha1_manifest_test.go out/terratest-sentinel-operator_tigera_io_amazon_cloud_integration_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_api_server_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_application_layer_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_authentication_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_compliance_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_egress_gateway_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_image_set_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_installation_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_intrusion_detection_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_log_collector_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_log_storage_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_management_cluster_connection_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_management_cluster_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_manager_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_monitor_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_packet_capture_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_policy_recommendation_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tenant_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tigera_status_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tls_pass_through_route_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_tls_terminated_route_v1_manifest_test.go out/terratest-sentinel-operator_tigera_io_amazon_cloud_integration_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_alert_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_auth_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_cluster_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_probe_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_rule_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_single_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest_test.go out/terratest-sentinel-operator_victoriametrics_com_vm_user_v1beta1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_backup_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_backup_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_config_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_cron_anything_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_database_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_export_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_import_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_instance_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_pitr_v1alpha1_manifest_test.go out/terratest-sentinel-oracle_db_anthosapis_com_release_v1alpha1_manifest_test.go out/terratest-sentinel-org_eclipse_che_che_cluster_v1_manifest_test.go out/terratest-sentinel-org_eclipse_che_che_cluster_v2_manifest_test.go out/terratest-sentinel-organizations_services_k8s_aws_organizational_unit_v1alpha1_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_backup_v2_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_cluster_v2_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_restore_v2_manifest_test.go out/terratest-sentinel-pgv2_percona_com_percona_pg_upgrade_v2_manifest_test.go out/terratest-sentinel-pipes_services_k8s_aws_pipe_v1alpha1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_configuration_revision_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_configuration_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_provider_revision_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_provider_v1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_controller_config_v1alpha1_manifest_test.go out/terratest-sentinel-pkg_crossplane_io_lock_v1beta1_manifest_test.go out/terratest-sentinel-policy_clusterpedia_io_cluster_import_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_clusterpedia_io_pedia_cluster_lifecycle_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_cluster_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_federated_resource_quota_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_override_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_karmada_io_propagation_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_kubeedge_io_service_account_access_v1alpha1_manifest_test.go out/terratest-sentinel-policy_networking_k8s_io_admin_network_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_networking_k8s_io_baseline_admin_network_policy_v1alpha1_manifest_test.go out/terratest-sentinel-policy_pod_disruption_budget_v1_manifest_test.go out/terratest-sentinel-postgres_operator_crunchydata_com_pg_admin_v1beta1_manifest_test.go out/terratest-sentinel-postgres_operator_crunchydata_com_pg_upgrade_v1beta1_manifest_test.go out/terratest-sentinel-postgres_operator_crunchydata_com_postgres_cluster_v1beta1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_backup_v1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_cluster_v1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_pooler_v1_manifest_test.go out/terratest-sentinel-postgresql_cnpg_io_scheduled_backup_v1_manifest_test.go out/terratest-sentinel-projectcontour_io_http_proxy_v1_manifest_test.go out/terratest-sentinel-projectcontour_io_tls_certificate_delegation_v1_manifest_test.go out/terratest-sentinel-projectcontour_io_contour_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-projectcontour_io_contour_deployment_v1alpha1_manifest_test.go out/terratest-sentinel-projectcontour_io_extension_service_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_alert_manager_definition_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_logging_configuration_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_rule_groups_namespace_v1alpha1_manifest_test.go out/terratest-sentinel-prometheusservice_services_k8s_aws_workspace_v1alpha1_manifest_test.go out/terratest-sentinel-ps_percona_com_percona_server_my_sql_v1alpha1_manifest_test.go out/terratest-sentinel-ps_percona_com_percona_server_my_sql_backup_v1alpha1_manifest_test.go out/terratest-sentinel-ps_percona_com_percona_server_my_sql_restore_v1alpha1_manifest_test.go out/terratest-sentinel-psmdb_percona_com_percona_server_mongo_db_v1_manifest_test.go out/terratest-sentinel-psmdb_percona_com_percona_server_mongo_db_backup_v1_manifest_test.go out/terratest-sentinel-psmdb_percona_com_percona_server_mongo_db_restore_v1_manifest_test.go out/terratest-sentinel-ptp_openshift_io_node_ptp_device_v1_manifest_test.go out/terratest-sentinel-ptp_openshift_io_ptp_config_v1_manifest_test.go out/terratest-sentinel-ptp_openshift_io_ptp_operator_config_v1_manifest_test.go out/terratest-sentinel-pubsubplus_solace_com_pub_sub_plus_event_broker_v1beta1_manifest_test.go out/terratest-sentinel-pxc_percona_com_percona_xtra_db_cluster_backup_v1_manifest_test.go out/terratest-sentinel-pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest_test.go out/terratest-sentinel-pxc_percona_com_percona_xtra_db_cluster_v1_manifest_test.go out/terratest-sentinel-quay_redhat_com_quay_registry_v1_manifest_test.go out/terratest-sentinel-quota_codeflare_dev_quota_subtree_v1alpha1_manifest_test.go out/terratest-sentinel-ray_io_ray_cluster_v1_manifest_test.go out/terratest-sentinel-ray_io_ray_job_v1_manifest_test.go out/terratest-sentinel-ray_io_ray_service_v1_manifest_test.go out/terratest-sentinel-ray_io_ray_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-ray_io_ray_job_v1alpha1_manifest_test.go out/terratest-sentinel-ray_io_ray_service_v1alpha1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_cluster_role_binding_v1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_cluster_role_v1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_role_binding_v1_manifest_test.go out/terratest-sentinel-rbac_authorization_k8s_io_role_v1_manifest_test.go out/terratest-sentinel-rbacmanager_reactiveops_io_rbac_definition_v1beta1_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_component_v1_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_operation_v1_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_component_v1beta2_manifest_test.go out/terratest-sentinel-rc_app_stacks_runtime_operation_v1beta2_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_cluster_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_parameter_group_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_proxy_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/terratest-sentinel-rds_services_k8s_aws_global_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_group_config_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_keepalived_group_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_namespace_config_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_patch_v1alpha1_manifest_test.go out/terratest-sentinel-redhatcop_redhat_io_user_config_v1alpha1_manifest_test.go out/terratest-sentinel-registry_apicur_io_apicurio_registry_v1_manifest_test.go out/terratest-sentinel-registry_devfile_io_cluster_devfile_registries_list_v1alpha1_manifest_test.go out/terratest-sentinel-registry_devfile_io_devfile_registries_list_v1alpha1_manifest_test.go out/terratest-sentinel-registry_devfile_io_devfile_registry_v1alpha1_manifest_test.go out/terratest-sentinel-reliablesyncs_kubeedge_io_cluster_object_sync_v1alpha1_manifest_test.go out/terratest-sentinel-reliablesyncs_kubeedge_io_object_sync_v1alpha1_manifest_test.go out/terratest-sentinel-remediation_medik8s_io_node_health_check_v1alpha1_manifest_test.go out/terratest-sentinel-repo_manager_pulpproject_org_pulp_backup_v1beta2_manifest_test.go out/terratest-sentinel-repo_manager_pulpproject_org_pulp_restore_v1beta2_manifest_test.go out/terratest-sentinel-repo_manager_pulpproject_org_pulp_v1beta2_manifest_test.go out/terratest-sentinel-reports_kyverno_io_cluster_ephemeral_report_v1_manifest_test.go out/terratest-sentinel-reports_kyverno_io_ephemeral_report_v1_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_login_rule_v1_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_okta_import_rule_v1_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_provision_token_v2_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_saml_connector_v2_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_user_v2_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_github_connector_v3_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_oidc_connector_v3_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_role_v5_manifest_test.go out/terratest-sentinel-resources_teleport_dev_teleport_role_v6_manifest_test.go out/terratest-sentinel-ripsaw_cloudbulldozer_io_benchmark_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_broker_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_console_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_name_service_v1alpha1_manifest_test.go out/terratest-sentinel-rocketmq_apache_org_topic_transfer_v1alpha1_manifest_test.go out/terratest-sentinel-route53_services_k8s_aws_hosted_zone_v1alpha1_manifest_test.go out/terratest-sentinel-route53_services_k8s_aws_record_set_v1alpha1_manifest_test.go out/terratest-sentinel-route53resolver_services_k8s_aws_resolver_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-route53resolver_services_k8s_aws_resolver_rule_v1alpha1_manifest_test.go out/terratest-sentinel-rules_kubeedge_io_rule_endpoint_v1_manifest_test.go out/terratest-sentinel-rules_kubeedge_io_rule_v1_manifest_test.go out/terratest-sentinel-runtime_cluster_x_k8s_io_extension_config_v1alpha1_manifest_test.go out/terratest-sentinel-s3_services_k8s_aws_bucket_v1alpha1_manifest_test.go out/terratest-sentinel-s3_snappcloud_io_s3_bucket_v1alpha1_manifest_test.go out/terratest-sentinel-s3_snappcloud_io_s3_user_claim_v1alpha1_manifest_test.go out/terratest-sentinel-s3_snappcloud_io_s3_user_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_app_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_data_quality_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_domain_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_endpoint_config_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_feature_group_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_hyper_parameter_tuning_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_bias_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_explainability_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_package_group_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_package_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_quality_job_definition_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_model_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_monitoring_schedule_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_notebook_instance_lifecycle_config_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_notebook_instance_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_processing_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_training_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_transform_job_v1alpha1_manifest_test.go out/terratest-sentinel-sagemaker_services_k8s_aws_user_profile_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_k8s_io_priority_class_v1_manifest_test.go out/terratest-sentinel-scheduling_koordinator_sh_device_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_koordinator_sh_pod_migration_job_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_koordinator_sh_reservation_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_sigs_k8s_io_elastic_quota_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_sigs_k8s_io_pod_group_v1alpha1_manifest_test.go out/terratest-sentinel-scheduling_volcano_sh_pod_group_v1beta1_manifest_test.go out/terratest-sentinel-scheduling_volcano_sh_queue_v1beta1_manifest_test.go out/terratest-sentinel-schemas_schemahero_io_data_type_v1alpha4_manifest_test.go out/terratest-sentinel-schemas_schemahero_io_migration_v1alpha4_manifest_test.go out/terratest-sentinel-schemas_schemahero_io_table_v1alpha4_manifest_test.go out/terratest-sentinel-scylla_scylladb_com_scylla_cluster_v1_manifest_test.go out/terratest-sentinel-scylla_scylladb_com_node_config_v1alpha1_manifest_test.go out/terratest-sentinel-scylla_scylladb_com_scylla_operator_config_v1alpha1_manifest_test.go out/terratest-sentinel-secretgenerator_mittwald_de_basic_auth_v1alpha1_manifest_test.go out/terratest-sentinel-secretgenerator_mittwald_de_ssh_key_pair_v1alpha1_manifest_test.go out/terratest-sentinel-secretgenerator_mittwald_de_string_secret_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_crossplane_io_store_config_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_doppler_com_doppler_secret_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_hcp_auth_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_hcp_vault_secrets_app_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_auth_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_connection_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_dynamic_secret_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_pki_secret_v1beta1_manifest_test.go out/terratest-sentinel-secrets_hashicorp_com_vault_static_secret_v1beta1_manifest_test.go out/terratest-sentinel-secrets_stackable_tech_secret_class_v1alpha1_manifest_test.go out/terratest-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1_manifest_test.go out/terratest-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1alpha1_manifest_test.go out/terratest-sentinel-secretsmanager_services_k8s_aws_secret_v1alpha1_manifest_test.go out/terratest-sentinel-secscan_quay_redhat_com_image_manifest_vuln_v1alpha1_manifest_test.go out/terratest-sentinel-security_istio_io_authorization_policy_v1_manifest_test.go out/terratest-sentinel-security_istio_io_peer_authentication_v1_manifest_test.go out/terratest-sentinel-security_istio_io_request_authentication_v1_manifest_test.go out/terratest-sentinel-security_istio_io_authorization_policy_v1beta1_manifest_test.go out/terratest-sentinel-security_istio_io_peer_authentication_v1beta1_manifest_test.go out/terratest-sentinel-security_istio_io_request_authentication_v1beta1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_app_armor_profile_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_profile_binding_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_profile_recording_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_security_profile_node_status_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_security_profiles_operator_daemon_v1alpha1_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_raw_selinux_profile_v1alpha2_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_selinux_profile_v1alpha2_manifest_test.go out/terratest-sentinel-security_profiles_operator_x_k8s_io_seccomp_profile_v1beta1_manifest_test.go out/terratest-sentinel-self_node_remediation_medik8s_io_self_node_remediation_config_v1alpha1_manifest_test.go out/terratest-sentinel-self_node_remediation_medik8s_io_self_node_remediation_template_v1alpha1_manifest_test.go out/terratest-sentinel-self_node_remediation_medik8s_io_self_node_remediation_v1alpha1_manifest_test.go out/terratest-sentinel-sematext_com_sematext_agent_v1_manifest_test.go out/terratest-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1alpha3_manifest_test.go out/terratest-sentinel-servicebinding_io_service_binding_v1alpha3_manifest_test.go out/terratest-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1beta1_manifest_test.go out/terratest-sentinel-servicebinding_io_service_binding_v1beta1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_istio_control_plane_v1alpha1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_istio_mesh_gateway_v1alpha1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_istio_mesh_v1alpha1_manifest_test.go out/terratest-sentinel-servicemesh_cisco_com_peer_istio_control_plane_v1alpha1_manifest_test.go out/terratest-sentinel-services_k8s_aws_adopted_resource_v1alpha1_manifest_test.go out/terratest-sentinel-services_k8s_aws_field_export_v1alpha1_manifest_test.go out/terratest-sentinel-serving_kubedl_io_inference_v1alpha1_manifest_test.go out/terratest-sentinel-sfn_services_k8s_aws_activity_v1alpha1_manifest_test.go out/terratest-sentinel-sfn_services_k8s_aws_state_machine_v1alpha1_manifest_test.go out/terratest-sentinel-site_superedge_io_node_group_v1alpha1_manifest_test.go out/terratest-sentinel-site_superedge_io_node_unit_v1alpha1_manifest_test.go out/terratest-sentinel-slo_koordinator_sh_node_metric_v1alpha1_manifest_test.go out/terratest-sentinel-slo_koordinator_sh_node_slo_v1alpha1_manifest_test.go out/terratest-sentinel-sloth_slok_dev_prometheus_service_level_v1_manifest_test.go out/terratest-sentinel-snapscheduler_backube_snapshot_schedule_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1beta1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1beta1_manifest_test.go out/terratest-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1beta1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_platform_application_v1alpha1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_platform_endpoint_v1alpha1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_subscription_v1alpha1_manifest_test.go out/terratest-sentinel-sns_services_k8s_aws_topic_v1alpha1_manifest_test.go out/terratest-sentinel-sonataflow_org_sonata_flow_build_v1alpha08_manifest_test.go out/terratest-sentinel-sonataflow_org_sonata_flow_platform_v1alpha08_manifest_test.go out/terratest-sentinel-sonataflow_org_sonata_flow_v1alpha08_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_bucket_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_git_repository_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_chart_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_repository_v1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_bucket_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta1_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_bucket_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta2_manifest_test.go out/terratest-sentinel-source_toolkit_fluxcd_io_oci_repository_v1beta2_manifest_test.go out/terratest-sentinel-spark_stackable_tech_spark_application_v1alpha1_manifest_test.go out/terratest-sentinel-spark_stackable_tech_spark_history_server_v1alpha1_manifest_test.go out/terratest-sentinel-sparkoperator_k8s_io_scheduled_spark_application_v1beta2_manifest_test.go out/terratest-sentinel-sparkoperator_k8s_io_spark_application_v1beta2_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_identity_v1alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v1alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_managed_identity_v1alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v2alpha1_manifest_test.go out/terratest-sentinel-spv_no_azure_key_vault_secret_v2beta1_manifest_test.go out/terratest-sentinel-sqs_services_k8s_aws_queue_v1alpha1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_ovs_network_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_ib_network_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_node_policy_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_node_state_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_pool_config_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_network_v1_manifest_test.go out/terratest-sentinel-sriovnetwork_openshift_io_sriov_operator_config_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_csi_driver_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_csi_node_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_storage_class_v1_manifest_test.go out/terratest-sentinel-storage_k8s_io_volume_attachment_v1_manifest_test.go out/terratest-sentinel-storage_kubeblocks_io_storage_provider_v1alpha1_manifest_test.go out/terratest-sentinel-storageos_com_storage_os_cluster_v1_manifest_test.go out/terratest-sentinel-sts_min_io_policy_binding_v1alpha1_manifest_test.go out/terratest-sentinel-sts_min_io_policy_binding_v1beta1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_dataplane_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_gateway_config_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_static_service_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_udp_route_v1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_dataplane_v1alpha1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_gateway_config_v1alpha1_manifest_test.go out/terratest-sentinel-stunner_l7mp_io_static_service_v1alpha1_manifest_test.go out/terratest-sentinel-submariner_io_broker_v1alpha1_manifest_test.go out/terratest-sentinel-submariner_io_service_discovery_v1alpha1_manifest_test.go out/terratest-sentinel-submariner_io_submariner_v1alpha1_manifest_test.go out/terratest-sentinel-superset_stackable_tech_druid_connection_v1alpha1_manifest_test.go out/terratest-sentinel-superset_stackable_tech_superset_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-telemetry_istio_io_telemetry_v1_manifest_test.go out/terratest-sentinel-telemetry_istio_io_telemetry_v1alpha1_manifest_test.go out/terratest-sentinel-templates_gatekeeper_sh_constraint_template_v1_manifest_test.go out/terratest-sentinel-templates_gatekeeper_sh_constraint_template_v1alpha1_manifest_test.go out/terratest-sentinel-templates_gatekeeper_sh_constraint_template_v1beta1_manifest_test.go out/terratest-sentinel-tempo_grafana_com_tempo_monolithic_v1alpha1_manifest_test.go out/terratest-sentinel-tempo_grafana_com_tempo_stack_v1alpha1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_cluster_client_v1beta1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_cluster_v1beta1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_namespace_v1beta1_manifest_test.go out/terratest-sentinel-temporal_io_temporal_worker_process_v1beta1_manifest_test.go out/terratest-sentinel-tests_testkube_io_script_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_execution_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_source_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_execution_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_trigger_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_v1_manifest_test.go out/terratest-sentinel-tests_testkube_io_script_v2_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_v2_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_v2_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_suite_v3_manifest_test.go out/terratest-sentinel-tests_testkube_io_test_v3_manifest_test.go out/terratest-sentinel-tf_tungsten_io_analytics_alarm_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_analytics_snmp_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_analytics_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_cassandra_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_config_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_control_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_kubemanager_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_manager_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_query_engine_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_rabbitmq_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_redis_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_vrouter_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_webui_v1alpha1_manifest_test.go out/terratest-sentinel-tf_tungsten_io_zookeeper_v1alpha1_manifest_test.go out/terratest-sentinel-theketch_io_app_v1beta1_manifest_test.go out/terratest-sentinel-theketch_io_job_v1beta1_manifest_test.go out/terratest-sentinel-tinkerbell_org_hardware_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_osie_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_stack_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_template_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_workflow_v1alpha1_manifest_test.go out/terratest-sentinel-tinkerbell_org_hardware_v1alpha2_manifest_test.go out/terratest-sentinel-tinkerbell_org_osie_v1alpha2_manifest_test.go out/terratest-sentinel-tinkerbell_org_template_v1alpha2_manifest_test.go out/terratest-sentinel-tinkerbell_org_workflow_v1alpha2_manifest_test.go out/terratest-sentinel-topology_node_k8s_io_node_resource_topology_v1alpha1_manifest_test.go out/terratest-sentinel-topolvm_cybozu_com_logical_volume_v1_manifest_test.go out/terratest-sentinel-topolvm_cybozu_com_topolvm_cluster_v2_manifest_test.go out/terratest-sentinel-traefik_io_ingress_route_tcp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_ingress_route_udp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_ingress_route_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_middleware_tcp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_middleware_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_servers_transport_tcp_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_servers_transport_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_tls_option_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_tls_store_v1alpha1_manifest_test.go out/terratest-sentinel-traefik_io_traefik_service_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_elastic_dl_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_mars_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_mpi_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_py_torch_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_tf_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_xdl_job_v1alpha1_manifest_test.go out/terratest-sentinel-training_kubedl_io_xg_boost_job_v1alpha1_manifest_test.go out/terratest-sentinel-trino_stackable_tech_trino_catalog_v1alpha1_manifest_test.go out/terratest-sentinel-trino_stackable_tech_trino_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-trust_cert_manager_io_bundle_v1alpha1_manifest_test.go out/terratest-sentinel-upgrade_cattle_io_plan_v1_manifest_test.go out/terratest-sentinel-upgrade_managed_openshift_io_upgrade_config_v1alpha1_manifest_test.go out/terratest-sentinel-velero_io_backup_repository_v1_manifest_test.go out/terratest-sentinel-velero_io_backup_storage_location_v1_manifest_test.go out/terratest-sentinel-velero_io_backup_v1_manifest_test.go out/terratest-sentinel-velero_io_delete_backup_request_v1_manifest_test.go out/terratest-sentinel-velero_io_download_request_v1_manifest_test.go out/terratest-sentinel-velero_io_pod_volume_backup_v1_manifest_test.go out/terratest-sentinel-velero_io_pod_volume_restore_v1_manifest_test.go out/terratest-sentinel-velero_io_restore_v1_manifest_test.go out/terratest-sentinel-velero_io_schedule_v1_manifest_test.go out/terratest-sentinel-velero_io_server_status_request_v1_manifest_test.go out/terratest-sentinel-velero_io_volume_snapshot_location_v1_manifest_test.go out/terratest-sentinel-velero_io_data_download_v2alpha1_manifest_test.go out/terratest-sentinel-velero_io_data_upload_v2alpha1_manifest_test.go out/terratest-sentinel-virt_virtink_smartx_com_virtual_machine_migration_v1alpha1_manifest_test.go out/terratest-sentinel-virt_virtink_smartx_com_virtual_machine_v1alpha1_manifest_test.go out/terratest-sentinel-volsync_backube_replication_destination_v1alpha1_manifest_test.go out/terratest-sentinel-volsync_backube_replication_source_v1alpha1_manifest_test.go out/terratest-sentinel-vpcresources_k8s_aws_cni_node_v1alpha1_manifest_test.go out/terratest-sentinel-vpcresources_k8s_aws_security_group_policy_v1beta1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_policy_report_v1alpha1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha2_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_policy_report_v1alpha2_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_cluster_policy_report_v1beta1_manifest_test.go out/terratest-sentinel-wgpolicyk8s_io_policy_report_v1beta1_manifest_test.go out/terratest-sentinel-wildfly_org_wild_fly_server_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_cluster_resource_binding_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_resource_binding_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_work_v1alpha1_manifest_test.go out/terratest-sentinel-work_karmada_io_cluster_resource_binding_v1alpha2_manifest_test.go out/terratest-sentinel-work_karmada_io_resource_binding_v1alpha2_manifest_test.go out/terratest-sentinel-workload_codeflare_dev_app_wrapper_v1beta1_manifest_test.go out/terratest-sentinel-workload_codeflare_dev_scheduling_spec_v1beta1_manifest_test.go out/terratest-sentinel-workload_codeflare_dev_app_wrapper_v1beta2_manifest_test.go out/terratest-sentinel-workloads_kubeblocks_io_instance_set_v1_manifest_test.go out/terratest-sentinel-workloads_kubeblocks_io_instance_set_v1alpha1_manifest_test.go out/terratest-sentinel-workloads_kubeblocks_io_replicated_state_machine_v1alpha1_manifest_test.go out/terratest-sentinel-zonecontrol_k8s_aws_zone_aware_update_v1_manifest_test.go out/terratest-sentinel-zonecontrol_k8s_aws_zone_disruption_budget_v1_manifest_test.go out/terratest-sentinel-zookeeper_pravega_io_zookeeper_cluster_v1beta1_manifest_test.go out/terratest-sentinel-zookeeper_stackable_tech_zookeeper_cluster_v1alpha1_manifest_test.go out/terratest-sentinel-zookeeper_stackable_tech_zookeeper_znode_v1alpha1_manifest_test.go ## run all terratest tests diff --git a/tests.mk b/tests.mk index e17751c26..cae206c15 100644 --- a/tests.mk +++ b/tests.mk @@ -2657,6 +2657,10 @@ out/test-sentinel-gateway_networking_k8s_io_http_route_v1_manifest_test.go: ./in mkdir --parents $(@D) go test ./internal/provider/gateway_networking_k8s_io_v1/gateway_networking_k8s_io_http_route_v1_manifest_test.go touch $@ +out/test-sentinel-gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go: ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest.go ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go + touch $@ out/test-sentinel-gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go: ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest.go ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go @@ -2665,6 +2669,10 @@ out/test-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_te mkdir --parents $(@D) go test ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go touch $@ +out/test-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go: ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_reference_grant_v1alpha2_manifest.go ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go + touch $@ out/test-sentinel-gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go: ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_tcp_route_v1alpha2_manifest.go ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go @@ -2677,6 +2685,10 @@ out/test-sentinel-gateway_networking_k8s_io_udp_route_v1alpha2_manifest_test.go: mkdir --parents $(@D) go test ./internal/provider/gateway_networking_k8s_io_v1alpha2/gateway_networking_k8s_io_udp_route_v1alpha2_manifest_test.go touch $@ +out/test-sentinel-gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go: ./internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest.go ./internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/gateway_networking_k8s_io_v1alpha3/gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go + touch $@ out/test-sentinel-gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go: ./internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_class_v1beta1_manifest.go ./internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/gateway_networking_k8s_io_v1beta1/gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go @@ -3869,6 +3881,18 @@ out/test-sentinel-kubevious_io_workload_v1alpha1_manifest_test.go: ./internal/pr mkdir --parents $(@D) go test ./internal/provider/kubevious_io_v1alpha1/kubevious_io_workload_v1alpha1_manifest_test.go touch $@ +out/test-sentinel-kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest.go ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go + touch $@ +out/test-sentinel-kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest.go ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go + touch $@ +out/test-sentinel-kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest.go ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/kueue_x_k8s_io_v1alpha1/kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go + touch $@ out/test-sentinel-kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_admission_check_v1beta1_manifest.go ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go @@ -3881,10 +3905,18 @@ out/test-sentinel-kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go: ./interna mkdir --parents $(@D) go test ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go touch $@ +out/test-sentinel-kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest.go ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go + touch $@ out/test-sentinel-kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_resource_flavor_v1beta1_manifest.go ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go touch $@ +out/test-sentinel-kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest.go ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go + touch $@ out/test-sentinel-kueue_x_k8s_io_workload_v1beta1_manifest_test.go: ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_v1beta1_manifest.go ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_v1beta1_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/kueue_x_k8s_io_v1beta1/kueue_x_k8s_io_workload_v1beta1_manifest_test.go @@ -5305,6 +5337,10 @@ out/test-sentinel-operator_tigera_io_amazon_cloud_integration_v1beta1_manifest_t mkdir --parents $(@D) go test ./internal/provider/operator_tigera_io_v1beta1/operator_tigera_io_amazon_cloud_integration_v1beta1_manifest_test.go touch $@ +out/test-sentinel-operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go: ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest.go ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go + touch $@ out/test-sentinel-operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go: ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest.go ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go @@ -5345,6 +5381,10 @@ out/test-sentinel-operator_victoriametrics_com_vm_rule_v1beta1_manifest_test.go: mkdir --parents $(@D) go test ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_rule_v1beta1_manifest_test.go touch $@ +out/test-sentinel-operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go: ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest.go ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go + mkdir --parents $(@D) + go test ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go + touch $@ out/test-sentinel-operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go: ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest.go ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go mkdir --parents $(@D) go test ./internal/provider/operator_victoriametrics_com_v1beta1/operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go @@ -6952,4 +6992,4 @@ out/test-sentinel-zookeeper_stackable_tech_zookeeper_znode_v1alpha1_manifest_tes .PHONY: tests -tests: out/test-sentinel-about_k8s_io_cluster_property_v1alpha1_manifest_test.go out/test-sentinel-acid_zalan_do_operator_configuration_v1_manifest_test.go out/test-sentinel-acid_zalan_do_postgres_team_v1_manifest_test.go out/test-sentinel-acid_zalan_do_postgresql_v1_manifest_test.go out/test-sentinel-acme_cert_manager_io_challenge_v1_manifest_test.go out/test-sentinel-acme_cert_manager_io_order_v1_manifest_test.go out/test-sentinel-acmpca_services_k8s_aws_certificate_authority_activation_v1alpha1_manifest_test.go out/test-sentinel-acmpca_services_k8s_aws_certificate_authority_v1alpha1_manifest_test.go out/test-sentinel-acmpca_services_k8s_aws_certificate_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_autoscaling_listener_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_autoscaling_runner_set_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_ephemeral_runner_set_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_ephemeral_runner_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_horizontal_runner_autoscaler_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_deployment_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_replica_set_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_set_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_v1alpha1_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha3_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha3_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha4_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha4_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1beta1_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1beta1_manifest_test.go out/test-sentinel-admissionregistration_k8s_io_mutating_webhook_configuration_v1_manifest_test.go out/test-sentinel-admissionregistration_k8s_io_validating_webhook_configuration_v1_manifest_test.go out/test-sentinel-agent_k8s_elastic_co_agent_v1alpha1_manifest_test.go out/test-sentinel-airflow_stackable_tech_airflow_cluster_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_aws_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_aws_iam_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_cloud_stack_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_cloud_stack_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_cluster_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_control_plane_upgrade_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_docker_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_eksa_release_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_flux_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_git_ops_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_machine_deployment_upgrade_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_node_upgrade_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_nutanix_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_nutanix_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_oidc_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_snow_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_snow_ip_pool_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_snow_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_tinkerbell_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_tinkerbell_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_tinkerbell_template_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_v_sphere_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_v_sphere_machine_config_v1alpha1_manifest_test.go out/test-sentinel-apacheweb_arsenal_dev_apacheweb_v1alpha1_manifest_test.go out/test-sentinel-api_clever_cloud_com_config_provider_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_elastic_search_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_mongo_db_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_my_sql_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_postgre_sql_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_redis_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_pulsar_v1beta1_manifest_test.go out/test-sentinel-api_kubemod_io_mod_rule_v1beta1_manifest_test.go out/test-sentinel-apicodegen_apimatic_io_api_matic_v1beta1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composite_resource_definition_v1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composition_revision_v1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composition_v1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composition_revision_v1beta1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_api_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_authorizer_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_deployment_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_integration_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_route_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_stage_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_vpc_link_v1alpha1_manifest_test.go out/test-sentinel-apiregistration_k8s_io_api_service_v1_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_cluster_config_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_consumer_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_global_rule_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_plugin_config_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_route_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_tls_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_upstream_v2_manifest_test.go out/test-sentinel-apm_k8s_elastic_co_apm_server_v1_manifest_test.go out/test-sentinel-apm_k8s_elastic_co_apm_server_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_build_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_infra_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_runtime_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_supporting_service_v1beta1_manifest_test.go out/test-sentinel-app_lightbend_com_akka_cluster_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_cluster_v1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_active_active_database_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_cluster_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_database_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_remote_cluster_v1alpha1_manifest_test.go out/test-sentinel-app_terraform_io_agent_pool_v1alpha2_manifest_test.go out/test-sentinel-app_terraform_io_module_v1alpha2_manifest_test.go out/test-sentinel-app_terraform_io_workspace_v1alpha2_manifest_test.go out/test-sentinel-application_networking_k8s_aws_access_log_policy_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_iam_auth_policy_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_service_import_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_target_group_policy_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_vpc_association_policy_v1alpha1_manifest_test.go out/test-sentinel-applicationautoscaling_services_k8s_aws_scalable_target_v1alpha1_manifest_test.go out/test-sentinel-applicationautoscaling_services_k8s_aws_scaling_policy_v1alpha1_manifest_test.go out/test-sentinel-appmesh_k8s_aws_backend_group_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_gateway_route_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_mesh_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_gateway_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_node_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_router_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_service_v1beta2_manifest_test.go out/test-sentinel-appprotect_f5_com_ap_log_conf_v1beta1_manifest_test.go out/test-sentinel-appprotect_f5_com_ap_policy_v1beta1_manifest_test.go out/test-sentinel-appprotect_f5_com_ap_user_sig_v1beta1_manifest_test.go out/test-sentinel-appprotectdos_f5_com_ap_dos_log_conf_v1beta1_manifest_test.go out/test-sentinel-appprotectdos_f5_com_ap_dos_policy_v1beta1_manifest_test.go out/test-sentinel-appprotectdos_f5_com_dos_protected_resource_v1beta1_manifest_test.go out/test-sentinel-apps_3scale_net_ap_icast_v1alpha1_manifest_test.go out/test-sentinel-apps_3scale_net_api_manager_backup_v1alpha1_manifest_test.go out/test-sentinel-apps_3scale_net_api_manager_restore_v1alpha1_manifest_test.go out/test-sentinel-apps_3scale_net_api_manager_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_base_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_description_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_feed_inventory_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_globalization_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_helm_chart_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_helm_release_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_localization_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_manifest_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_subscription_v1alpha1_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_broker_v1beta3_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_enterprise_v1beta3_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_plugin_v1beta3_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_broker_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_enterprise_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_plugin_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_rebalance_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_v2alpha1_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_v2beta1_manifest_test.go out/test-sentinel-apps_emqx_io_rebalance_v2beta1_manifest_test.go out/test-sentinel-apps_gitlab_com_git_lab_v1beta1_manifest_test.go out/test-sentinel-apps_gitlab_com_runner_v1beta2_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_definition_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_definition_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_version_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_service_descriptor_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_backup_policy_template_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_version_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_class_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_resource_constraint_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_version_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_config_constraint_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_configuration_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_ops_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_ops_request_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_service_descriptor_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_config_constraint_v1beta1_manifest_test.go out/test-sentinel-apps_kubedl_io_cron_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeedge_io_edge_application_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeedge_io_node_group_v1alpha1_manifest_test.go out/test-sentinel-apps_m88i_io_nexus_v1alpha1_manifest_test.go out/test-sentinel-apps_redhat_com_cluster_impairment_v1alpha1_manifest_test.go out/test-sentinel-apps_daemon_set_v1_manifest_test.go out/test-sentinel-apps_deployment_v1_manifest_test.go out/test-sentinel-apps_replica_set_v1_manifest_test.go out/test-sentinel-apps_stateful_set_v1_manifest_test.go out/test-sentinel-aquasecurity_github_io_aqua_starboard_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_app_project_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_application_set_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_application_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_argo_cd_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_argo_cd_export_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_argo_cd_v1beta1_manifest_test.go out/test-sentinel-asdb_aerospike_com_aerospike_cluster_v1_manifest_test.go out/test-sentinel-asdb_aerospike_com_aerospike_cluster_v1beta1_manifest_test.go out/test-sentinel-atlasmap_io_atlas_map_v1alpha1_manifest_test.go out/test-sentinel-auth_ops42_org_aws_auth_sync_config_v1alpha1_manifest_test.go out/test-sentinel-authentication_stackable_tech_authentication_class_v1alpha1_manifest_test.go out/test-sentinel-authzed_com_spice_db_cluster_v1alpha1_manifest_test.go out/test-sentinel-automation_kubensync_com_managed_resource_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_k8s_elastic_co_elasticsearch_autoscaler_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1beta2_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1beta2_manifest_test.go out/test-sentinel-autoscaling_karmada_io_cron_federated_hpa_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_karmada_io_federated_hpa_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_horizontal_pod_autoscaler_v1_manifest_test.go out/test-sentinel-autoscaling_horizontal_pod_autoscaler_v2_manifest_test.go out/test-sentinel-awx_ansible_com_awx_v1beta1_manifest_test.go out/test-sentinel-awx_ansible_com_awx_backup_v1beta1_manifest_test.go out/test-sentinel-awx_ansible_com_awx_restore_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_apim_service_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_api_mgmt_api_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_app_insights_api_key_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_app_insights_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_load_balancer_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_network_interface_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_public_ip_address_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_action_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_database_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_failover_group_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_server_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_managed_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sqlv_net_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_virtual_machine_extension_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_virtual_machine_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_vm_scale_set_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_blob_container_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_consumer_group_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_cosmos_db_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_eventhub_namespace_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_eventhub_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_key_vault_key_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_key_vault_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_database_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_server_administrator_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_server_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sqlv_net_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_database_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sqlv_net_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_redis_cache_action_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_redis_cache_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_resource_group_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_storage_account_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_virtual_network_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_blob_container_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_server_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_user_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_database_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_failover_group_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_server_v1beta1_manifest_test.go out/test-sentinel-b3scale_infra_run_bbb_frontend_v1_manifest_test.go out/test-sentinel-b3scale_io_bbb_frontend_v1_manifest_test.go out/test-sentinel-batch_cron_job_v1_manifest_test.go out/test-sentinel-batch_job_v1_manifest_test.go out/test-sentinel-batch_volcano_sh_job_v1alpha1_manifest_test.go out/test-sentinel-beat_k8s_elastic_co_beat_v1beta1_manifest_test.go out/test-sentinel-beegfs_csi_netapp_com_beegfs_driver_v1_manifest_test.go out/test-sentinel-binding_operators_coreos_com_service_binding_v1alpha1_manifest_test.go out/test-sentinel-bitnami_com_sealed_secret_v1alpha1_manifest_test.go out/test-sentinel-bmc_tinkerbell_org_job_v1alpha1_manifest_test.go out/test-sentinel-bmc_tinkerbell_org_machine_v1alpha1_manifest_test.go out/test-sentinel-bmc_tinkerbell_org_task_v1alpha1_manifest_test.go out/test-sentinel-boskos_k8s_io_drlc_object_v1_manifest_test.go out/test-sentinel-boskos_k8s_io_resource_object_v1_manifest_test.go out/test-sentinel-bpfman_io_bpf_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_fentry_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_fexit_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_kprobe_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_tc_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_tracepoint_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_uprobe_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_xdp_program_v1alpha1_manifest_test.go out/test-sentinel-bus_volcano_sh_command_v1alpha1_manifest_test.go out/test-sentinel-cache_kubedl_io_cache_backend_v1alpha1_manifest_test.go out/test-sentinel-caching_ibm_com_varnish_cluster_v1alpha1_manifest_test.go out/test-sentinel-camel_apache_org_build_v1_manifest_test.go out/test-sentinel-camel_apache_org_camel_catalog_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_kit_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_platform_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_profile_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_v1_manifest_test.go out/test-sentinel-camel_apache_org_kamelet_v1_manifest_test.go out/test-sentinel-camel_apache_org_pipe_v1_manifest_test.go out/test-sentinel-camel_apache_org_kamelet_binding_v1alpha1_manifest_test.go out/test-sentinel-camel_apache_org_kamelet_v1alpha1_manifest_test.go out/test-sentinel-canaries_flanksource_com_canary_v1_manifest_test.go out/test-sentinel-canaries_flanksource_com_component_v1_manifest_test.go out/test-sentinel-canaries_flanksource_com_topology_v1_manifest_test.go out/test-sentinel-capabilities_3scale_net_tenant_v1alpha1_manifest_test.go out/test-sentinel-capabilities_3scale_net_active_doc_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_application_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_backend_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_custom_policy_definition_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_developer_account_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_developer_user_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_open_api_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_product_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_proxy_config_promote_v1beta1_manifest_test.go out/test-sentinel-capsule_clastix_io_capsule_configuration_v1alpha1_manifest_test.go out/test-sentinel-capsule_clastix_io_tenant_v1alpha1_manifest_test.go out/test-sentinel-capsule_clastix_io_tenant_v1beta1_manifest_test.go out/test-sentinel-capsule_clastix_io_capsule_configuration_v1beta2_manifest_test.go out/test-sentinel-capsule_clastix_io_tenant_v1beta2_manifest_test.go out/test-sentinel-cassandra_datastax_com_cassandra_datacenter_v1beta1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_block_pool_rados_namespace_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_block_pool_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_bucket_notification_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_bucket_topic_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_client_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_cluster_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_cosi_driver_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_filesystem_mirror_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_filesystem_sub_volume_group_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_filesystem_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_nfs_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_realm_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_store_user_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_store_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_zone_group_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_zone_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_rbd_mirror_v1_manifest_test.go out/test-sentinel-cert_manager_io_certificate_request_v1_manifest_test.go out/test-sentinel-cert_manager_io_certificate_v1_manifest_test.go out/test-sentinel-cert_manager_io_cluster_issuer_v1_manifest_test.go out/test-sentinel-cert_manager_io_issuer_v1_manifest_test.go out/test-sentinel-certificates_k8s_io_certificate_signing_request_v1_manifest_test.go out/test-sentinel-certman_managed_openshift_io_certificate_request_v1alpha1_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_configuration_v1alpha1_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_test_v1alpha1_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_configuration_v1alpha2_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_test_v1alpha2_manifest_test.go out/test-sentinel-chaos_mesh_org_aws_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_azure_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_block_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_dns_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_gcp_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_http_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_io_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_jvm_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_kernel_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_network_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_physical_machine_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_physical_machine_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_http_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_io_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_network_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_remote_cluster_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_schedule_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_status_check_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_stress_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_time_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_workflow_node_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_workflow_v1alpha1_manifest_test.go out/test-sentinel-chaosblade_io_chaos_blade_v1alpha1_manifest_test.go out/test-sentinel-charts_amd_com_amdgpu_v1alpha1_manifest_test.go out/test-sentinel-charts_flagsmith_com_flagsmith_v1alpha1_manifest_test.go out/test-sentinel-charts_helm_k8s_io_snyk_monitor_v1alpha1_manifest_test.go out/test-sentinel-charts_opdev_io_synapse_v1alpha1_manifest_test.go out/test-sentinel-charts_operatorhub_io_cockroachdb_v1alpha1_manifest_test.go out/test-sentinel-che_eclipse_org_kubernetes_image_puller_v1alpha1_manifest_test.go out/test-sentinel-chisel_operator_io_exit_node_provisioner_v1_manifest_test.go out/test-sentinel-chisel_operator_io_exit_node_v1_manifest_test.go out/test-sentinel-chisel_operator_io_exit_node_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_clusterwide_envoy_config_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_clusterwide_network_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_egress_gateway_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_envoy_config_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_external_workload_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_identity_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_local_redirect_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_network_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_node_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_bgp_peering_policy_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_cidr_group_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_endpoint_slice_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_l2_announcement_policy_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_load_balancer_ip_pool_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_node_config_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_pod_ip_pool_v2alpha1_manifest_test.go out/test-sentinel-claudie_io_input_manifest_v1beta1_manifest_test.go out/test-sentinel-cloudformation_linki_space_stack_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_cache_policy_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_distribution_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_function_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_origin_request_policy_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_response_headers_policy_v1alpha1_manifest_test.go out/test-sentinel-cloudtrail_services_k8s_aws_event_data_store_v1alpha1_manifest_test.go out/test-sentinel-cloudtrail_services_k8s_aws_trail_v1alpha1_manifest_test.go out/test-sentinel-cloudwatch_aws_amazon_com_amazon_cloud_watch_agent_v1alpha1_manifest_test.go out/test-sentinel-cloudwatch_aws_amazon_com_instrumentation_v1alpha1_manifest_test.go out/test-sentinel-cloudwatch_services_k8s_aws_metric_alarm_v1alpha1_manifest_test.go out/test-sentinel-cloudwatchlogs_services_k8s_aws_log_group_v1alpha1_manifest_test.go out/test-sentinel-cluster_clusterpedia_io_cluster_sync_resources_v1alpha2_manifest_test.go out/test-sentinel-cluster_clusterpedia_io_pedia_cluster_v1alpha2_manifest_test.go out/test-sentinel-cluster_ipfs_io_circuit_relay_v1alpha1_manifest_test.go out/test-sentinel-cluster_ipfs_io_ipfs_cluster_v1alpha1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_pool_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_set_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_class_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_pool_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_set_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_class_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_deployment_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_health_check_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_pool_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_set_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_v1beta1_manifest_test.go out/test-sentinel-clusters_clusternet_io_cluster_registration_request_v1beta1_manifest_test.go out/test-sentinel-clusters_clusternet_io_managed_cluster_v1beta1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_instance_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_quota_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_setup_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_config_v1alpha1_manifest_test.go out/test-sentinel-confidentialcontainers_org_cc_runtime_v1beta1_manifest_test.go out/test-sentinel-config_gatekeeper_sh_config_v1alpha1_manifest_test.go out/test-sentinel-config_grafana_com_project_config_v1_manifest_test.go out/test-sentinel-config_karmada_io_resource_interpreter_customization_v1alpha1_manifest_test.go out/test-sentinel-config_karmada_io_resource_interpreter_webhook_configuration_v1alpha1_manifest_test.go out/test-sentinel-config_koordinator_sh_cluster_colocation_profile_v1alpha1_manifest_test.go out/test-sentinel-config_storageos_com_operator_config_v1_manifest_test.go out/test-sentinel-control_k8ssandra_io_cassandra_task_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_collected_status_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_federated_object_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_override_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_collected_status_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_federated_cluster_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_federated_object_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_federated_type_config_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_override_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_scheduler_plugin_webhook_configuration_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_scheduling_profile_v1alpha1_manifest_test.go out/test-sentinel-core_linuxsuren_github_com_a_test_v1alpha1_manifest_test.go out/test-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha1_manifest_test.go out/test-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha2_manifest_test.go out/test-sentinel-core_strimzi_io_strimzi_pod_set_v1beta2_manifest_test.go out/test-sentinel-config_map_v1_manifest_test.go out/test-sentinel-endpoints_v1_manifest_test.go out/test-sentinel-limit_range_v1_manifest_test.go out/test-sentinel-namespace_v1_manifest_test.go out/test-sentinel-persistent_volume_claim_v1_manifest_test.go out/test-sentinel-persistent_volume_v1_manifest_test.go out/test-sentinel-pod_v1_manifest_test.go out/test-sentinel-replication_controller_v1_manifest_test.go out/test-sentinel-secret_v1_manifest_test.go out/test-sentinel-service_account_v1_manifest_test.go out/test-sentinel-service_v1_manifest_test.go out/test-sentinel-couchbase_com_couchbase_autoscaler_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_backup_restore_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_backup_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_bucket_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_cluster_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_collection_group_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_collection_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_ephemeral_bucket_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_group_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_memcached_bucket_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_migration_replication_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_replication_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_role_binding_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_scope_group_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_scope_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_user_v2_manifest_test.go out/test-sentinel-craftypath_github_io_sops_secret_v1alpha1_manifest_test.go out/test-sentinel-crane_konveyor_io_operator_config_v1alpha1_manifest_test.go out/test-sentinel-crd_projectcalico_org_bgp_configuration_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_bgp_filter_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_bgp_peer_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_block_affinity_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_calico_node_status_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_cluster_information_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_felix_configuration_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_global_network_policy_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_global_network_set_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_host_endpoint_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ipam_block_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ipam_config_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ipam_handle_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ip_pool_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ip_reservation_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_kube_controllers_configuration_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_network_policy_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_network_set_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_tier_v1_manifest_test.go out/test-sentinel-data_fluid_io_alluxio_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_data_backup_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_data_load_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_dataset_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_goose_fs_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_jindo_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_juice_fs_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_thin_runtime_profile_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_thin_runtime_v1alpha1_manifest_test.go out/test-sentinel-databases_schemahero_io_database_v1alpha4_manifest_test.go out/test-sentinel-databases_spotahome_com_redis_failover_v1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_agent_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_metric_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_monitor_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_slo_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_agent_v2alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_action_set_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_policy_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_repo_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_schedule_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_restore_v1alpha1_manifest_test.go out/test-sentinel-designer_kaoto_io_kaoto_v1alpha1_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_model_v1alpha2_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_v1alpha2_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_model_v1beta1_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_v1beta1_manifest_test.go out/test-sentinel-devops_kubesphere_io_releaser_controller_v1alpha1_manifest_test.go out/test-sentinel-devops_kubesphere_io_releaser_v1alpha1_manifest_test.go out/test-sentinel-dex_gpu_ninja_com_dex_identity_provider_v1alpha1_manifest_test.go out/test-sentinel-dex_gpu_ninja_com_dex_o_auth2_client_v1alpha1_manifest_test.go out/test-sentinel-dex_gpu_ninja_com_dex_user_v1alpha1_manifest_test.go out/test-sentinel-digitalis_io_vals_secret_v1_manifest_test.go out/test-sentinel-digitalis_io_db_secret_v1beta1_manifest_test.go out/test-sentinel-discovery_k8s_io_endpoint_slice_v1_manifest_test.go out/test-sentinel-documentdb_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/test-sentinel-documentdb_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/test-sentinel-documentdb_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-druid_apache_org_druid_v1alpha1_manifest_test.go out/test-sentinel-druid_stackable_tech_druid_cluster_v1alpha1_manifest_test.go out/test-sentinel-dynamodb_services_k8s_aws_backup_v1alpha1_manifest_test.go out/test-sentinel-dynamodb_services_k8s_aws_global_table_v1alpha1_manifest_test.go out/test-sentinel-dynamodb_services_k8s_aws_table_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_dhcp_options_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_elastic_ip_address_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_instance_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_internet_gateway_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_nat_gateway_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_route_table_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_security_group_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_subnet_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_transit_gateway_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_vpc_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_vpc_endpoint_v1alpha1_manifest_test.go out/test-sentinel-ecr_services_k8s_aws_pull_through_cache_rule_v1alpha1_manifest_test.go out/test-sentinel-ecr_services_k8s_aws_repository_v1alpha1_manifest_test.go out/test-sentinel-edc_stackable_tech_edc_cluster_v1alpha1_manifest_test.go out/test-sentinel-efs_services_k8s_aws_access_point_v1alpha1_manifest_test.go out/test-sentinel-efs_services_k8s_aws_file_system_v1alpha1_manifest_test.go out/test-sentinel-efs_services_k8s_aws_mount_target_v1alpha1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_cluster_endpoint_slice_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_cluster_info_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_cluster_policy_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_endpoint_slice_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_gateway_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_policy_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_tunnel_v1beta1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_addon_v1alpha1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_fargate_profile_v1alpha1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_nodegroup_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_cache_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_cache_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_replication_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_user_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_user_v1alpha1_manifest_test.go out/test-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1_manifest_test.go out/test-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1beta1_manifest_test.go out/test-sentinel-elbv2_k8s_aws_target_group_binding_v1alpha1_manifest_test.go out/test-sentinel-elbv2_k8s_aws_ingress_class_params_v1beta1_manifest_test.go out/test-sentinel-elbv2_k8s_aws_target_group_binding_v1beta1_manifest_test.go out/test-sentinel-emrcontainers_services_k8s_aws_job_run_v1alpha1_manifest_test.go out/test-sentinel-emrcontainers_services_k8s_aws_virtual_cluster_v1alpha1_manifest_test.go out/test-sentinel-ensembleoss_io_cluster_v1_manifest_test.go out/test-sentinel-ensembleoss_io_resource_v1_manifest_test.go out/test-sentinel-enterprise_gloo_solo_io_auth_config_v1_manifest_test.go out/test-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1_manifest_test.go out/test-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1beta1_manifest_test.go out/test-sentinel-events_k8s_io_event_v1_manifest_test.go out/test-sentinel-everest_percona_com_backup_storage_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_cluster_backup_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_cluster_restore_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_cluster_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_engine_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_monitoring_config_v1alpha1_manifest_test.go out/test-sentinel-execution_furiko_io_job_config_v1alpha1_manifest_test.go out/test-sentinel-execution_furiko_io_job_v1alpha1_manifest_test.go out/test-sentinel-executor_testkube_io_executor_v1_manifest_test.go out/test-sentinel-executor_testkube_io_webhook_v1_manifest_test.go out/test-sentinel-expansion_gatekeeper_sh_expansion_template_v1alpha1_manifest_test.go out/test-sentinel-expansion_gatekeeper_sh_expansion_template_v1beta1_manifest_test.go out/test-sentinel-extensions_istio_io_wasm_plugin_v1alpha1_manifest_test.go out/test-sentinel-extensions_kubeblocks_io_addon_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_cluster_secret_store_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_external_secret_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_secret_store_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_cluster_external_secret_v1beta1_manifest_test.go out/test-sentinel-external_secrets_io_cluster_secret_store_v1beta1_manifest_test.go out/test-sentinel-external_secrets_io_external_secret_v1beta1_manifest_test.go out/test-sentinel-external_secrets_io_secret_store_v1beta1_manifest_test.go out/test-sentinel-externaldata_gatekeeper_sh_provider_v1alpha1_manifest_test.go out/test-sentinel-externaldata_gatekeeper_sh_provider_v1beta1_manifest_test.go out/test-sentinel-externaldns_k8s_io_dns_endpoint_v1alpha1_manifest_test.go out/test-sentinel-externaldns_nginx_org_dns_endpoint_v1_manifest_test.go out/test-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_template_v1alpha1_manifest_test.go out/test-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_v1alpha1_manifest_test.go out/test-sentinel-flagger_app_alert_provider_v1beta1_manifest_test.go out/test-sentinel-flagger_app_canary_v1beta1_manifest_test.go out/test-sentinel-flagger_app_metric_template_v1beta1_manifest_test.go out/test-sentinel-flink_apache_org_flink_deployment_v1beta1_manifest_test.go out/test-sentinel-flink_apache_org_flink_session_job_v1beta1_manifest_test.go out/test-sentinel-flow_volcano_sh_job_flow_v1alpha1_manifest_test.go out/test-sentinel-flow_volcano_sh_job_template_v1alpha1_manifest_test.go out/test-sentinel-flowcontrol_apiserver_k8s_io_flow_schema_v1beta3_manifest_test.go out/test-sentinel-flowcontrol_apiserver_k8s_io_priority_level_configuration_v1beta3_manifest_test.go out/test-sentinel-flows_netobserv_io_flow_collector_v1alpha1_manifest_test.go out/test-sentinel-flows_netobserv_io_flow_collector_v1beta1_manifest_test.go out/test-sentinel-flows_netobserv_io_flow_collector_v1beta2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_filter_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_fluent_bit_config_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_input_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_output_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_parser_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_collector_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_filter_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_fluent_bit_config_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_fluent_bit_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_output_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_parser_v1alpha2_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_filter_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_fluentd_config_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_input_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_output_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_filter_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_fluentd_config_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_fluentd_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_input_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_output_v1alpha1_manifest_test.go out/test-sentinel-flux_framework_org_mini_cluster_v1alpha1_manifest_test.go out/test-sentinel-flux_framework_org_mini_cluster_v1alpha2_manifest_test.go out/test-sentinel-forklift_konveyor_io_forklift_controller_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_hook_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_host_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_migration_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_network_map_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_openstack_volume_populator_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_ovirt_volume_populator_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_plan_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_provider_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_storage_map_v1beta1_manifest_test.go out/test-sentinel-fossul_io_backup_config_v1_manifest_test.go out/test-sentinel-fossul_io_backup_schedule_v1_manifest_test.go out/test-sentinel-fossul_io_backup_v1_manifest_test.go out/test-sentinel-fossul_io_fossul_v1_manifest_test.go out/test-sentinel-fossul_io_restore_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_class_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_grpc_route_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_http_route_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_tls_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_udp_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_v1beta1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_http_route_v1beta1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_reference_grant_v1beta1_manifest_test.go out/test-sentinel-gateway_nginx_org_client_settings_policy_v1alpha1_manifest_test.go out/test-sentinel-gateway_nginx_org_nginx_gateway_v1alpha1_manifest_test.go out/test-sentinel-gateway_nginx_org_nginx_proxy_v1alpha1_manifest_test.go out/test-sentinel-gateway_nginx_org_observability_policy_v1alpha1_manifest_test.go out/test-sentinel-gateway_solo_io_gateway_v1_manifest_test.go out/test-sentinel-gateway_solo_io_matchable_http_gateway_v1_manifest_test.go out/test-sentinel-gateway_solo_io_route_option_v1_manifest_test.go out/test-sentinel-gateway_solo_io_route_table_v1_manifest_test.go out/test-sentinel-gateway_solo_io_virtual_host_option_v1_manifest_test.go out/test-sentinel-gateway_solo_io_virtual_service_v1_manifest_test.go out/test-sentinel-getambassador_io_auth_service_v1_manifest_test.go out/test-sentinel-getambassador_io_consul_resolver_v1_manifest_test.go out/test-sentinel-getambassador_io_dev_portal_v1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_endpoint_resolver_v1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_service_resolver_v1_manifest_test.go out/test-sentinel-getambassador_io_log_service_v1_manifest_test.go out/test-sentinel-getambassador_io_mapping_v1_manifest_test.go out/test-sentinel-getambassador_io_module_v1_manifest_test.go out/test-sentinel-getambassador_io_rate_limit_service_v1_manifest_test.go out/test-sentinel-getambassador_io_tcp_mapping_v1_manifest_test.go out/test-sentinel-getambassador_io_tls_context_v1_manifest_test.go out/test-sentinel-getambassador_io_tracing_service_v1_manifest_test.go out/test-sentinel-getambassador_io_auth_service_v2_manifest_test.go out/test-sentinel-getambassador_io_consul_resolver_v2_manifest_test.go out/test-sentinel-getambassador_io_dev_portal_v2_manifest_test.go out/test-sentinel-getambassador_io_host_v2_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_endpoint_resolver_v2_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_service_resolver_v2_manifest_test.go out/test-sentinel-getambassador_io_log_service_v2_manifest_test.go out/test-sentinel-getambassador_io_mapping_v2_manifest_test.go out/test-sentinel-getambassador_io_module_v2_manifest_test.go out/test-sentinel-getambassador_io_rate_limit_service_v2_manifest_test.go out/test-sentinel-getambassador_io_tcp_mapping_v2_manifest_test.go out/test-sentinel-getambassador_io_tls_context_v2_manifest_test.go out/test-sentinel-getambassador_io_tracing_service_v2_manifest_test.go out/test-sentinel-getambassador_io_auth_service_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_consul_resolver_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_dev_portal_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_host_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_endpoint_resolver_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_service_resolver_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_listener_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_log_service_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_mapping_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_module_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_rate_limit_service_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_tcp_mapping_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_tls_context_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_tracing_service_v3alpha1_manifest_test.go out/test-sentinel-gitops_hybrid_cloud_patterns_io_pattern_v1alpha1_manifest_test.go out/test-sentinel-gloo_solo_io_proxy_v1_manifest_test.go out/test-sentinel-gloo_solo_io_settings_v1_manifest_test.go out/test-sentinel-gloo_solo_io_upstream_group_v1_manifest_test.go out/test-sentinel-gloo_solo_io_upstream_v1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_dashboard_v1beta1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_datasource_v1beta1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_folder_v1beta1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_v1beta1_manifest_test.go out/test-sentinel-graphql_gloo_solo_io_graph_ql_api_v1beta1_manifest_test.go out/test-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_class_v1alpha1_manifest_test.go out/test-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_content_v1alpha1_manifest_test.go out/test-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_cron_hot_backup_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_hazelcast_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_hot_backup_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_management_center_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_map_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_wan_replication_v1alpha1_manifest_test.go out/test-sentinel-hbase_stackable_tech_hbase_cluster_v1alpha1_manifest_test.go out/test-sentinel-hdfs_stackable_tech_hdfs_cluster_v1alpha1_manifest_test.go out/test-sentinel-helm_sigstore_dev_rekor_v1alpha1_manifest_test.go out/test-sentinel-helm_toolkit_fluxcd_io_helm_release_v2_manifest_test.go out/test-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta1_manifest_test.go out/test-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta2_manifest_test.go out/test-sentinel-hive_openshift_io_checkpoint_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_claim_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_deployment_customization_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_deployment_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_deprovision_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_image_set_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_pool_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_provision_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_relocate_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_state_v1_manifest_test.go out/test-sentinel-hive_openshift_io_dns_zone_v1_manifest_test.go out/test-sentinel-hive_openshift_io_hive_config_v1_manifest_test.go out/test-sentinel-hive_openshift_io_machine_pool_name_lease_v1_manifest_test.go out/test-sentinel-hive_openshift_io_machine_pool_v1_manifest_test.go out/test-sentinel-hive_openshift_io_selector_sync_identity_provider_v1_manifest_test.go out/test-sentinel-hive_openshift_io_selector_sync_set_v1_manifest_test.go out/test-sentinel-hive_openshift_io_sync_identity_provider_v1_manifest_test.go out/test-sentinel-hive_openshift_io_sync_set_v1_manifest_test.go out/test-sentinel-hive_stackable_tech_hive_cluster_v1alpha1_manifest_test.go out/test-sentinel-hiveinternal_openshift_io_cluster_sync_lease_v1alpha1_manifest_test.go out/test-sentinel-hiveinternal_openshift_io_cluster_sync_v1alpha1_manifest_test.go out/test-sentinel-hiveinternal_openshift_io_fake_cluster_install_v1alpha1_manifest_test.go out/test-sentinel-hnc_x_k8s_io_hierarchical_resource_quota_v1alpha2_manifest_test.go out/test-sentinel-hnc_x_k8s_io_hierarchy_configuration_v1alpha2_manifest_test.go out/test-sentinel-hnc_x_k8s_io_hnc_configuration_v1alpha2_manifest_test.go out/test-sentinel-hnc_x_k8s_io_subnamespace_anchor_v1alpha2_manifest_test.go out/test-sentinel-hyperfoil_io_horreum_v1alpha1_manifest_test.go out/test-sentinel-hyperfoil_io_hyperfoil_v1alpha2_manifest_test.go out/test-sentinel-iam_services_k8s_aws_group_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_instance_profile_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_open_id_connect_provider_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_policy_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_role_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_user_v1alpha1_manifest_test.go out/test-sentinel-ibmcloud_ibm_com_composable_v1alpha1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta2_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta2_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta2_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_event_bridge_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_event_driven_ingestion_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_instance_binding_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_study_binding_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicomweb_ingestion_service_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dimse_ingestion_service_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dimse_proxy_v1alpha1_manifest_test.go out/test-sentinel-inference_kubedl_io_elastic_batch_job_v1alpha1_manifest_test.go out/test-sentinel-infinispan_org_infinispan_v1_manifest_test.go out/test-sentinel-infinispan_org_backup_v2alpha1_manifest_test.go out/test-sentinel-infinispan_org_batch_v2alpha1_manifest_test.go out/test-sentinel-infinispan_org_cache_v2alpha1_manifest_test.go out/test-sentinel-infinispan_org_restore_v2alpha1_manifest_test.go out/test-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha1_manifest_test.go out/test-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_template_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_template_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta2_manifest_test.go out/test-sentinel-installation_mattermost_com_mattermost_v1beta1_manifest_test.go out/test-sentinel-instana_io_instana_agent_v1_manifest_test.go out/test-sentinel-integration_rock8s_com_deferred_resource_v1beta1_manifest_test.go out/test-sentinel-integration_rock8s_com_plug_v1beta1_manifest_test.go out/test-sentinel-integration_rock8s_com_socket_v1beta1_manifest_test.go out/test-sentinel-iot_eclipse_org_ditto_v1alpha1_manifest_test.go out/test-sentinel-iot_eclipse_org_hawkbit_v1alpha1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1alpha1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_v1alpha1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1beta1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_v1beta1_manifest_test.go out/test-sentinel-isindir_github_com_sops_secret_v1alpha1_manifest_test.go out/test-sentinel-isindir_github_com_sops_secret_v1alpha2_manifest_test.go out/test-sentinel-isindir_github_com_sops_secret_v1alpha3_manifest_test.go out/test-sentinel-jaegertracing_io_jaeger_v1_manifest_test.go out/test-sentinel-jobset_x_k8s_io_job_set_v1alpha2_manifest_test.go out/test-sentinel-jobsmanager_raczylo_com_managed_job_v1beta1_manifest_test.go out/test-sentinel-k6_io_k6_v1alpha1_manifest_test.go out/test-sentinel-k6_io_private_load_zone_v1alpha1_manifest_test.go out/test-sentinel-k6_io_test_run_v1alpha1_manifest_test.go out/test-sentinel-k8gb_absa_oss_gslb_v1beta1_manifest_test.go out/test-sentinel-k8s_keycloak_org_keycloak_realm_import_v2alpha1_manifest_test.go out/test-sentinel-k8s_keycloak_org_keycloak_v2alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_backup_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_connection_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_database_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_grant_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_maria_db_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_max_scale_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_restore_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_sql_job_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_user_v1alpha1_manifest_test.go out/test-sentinel-k8s_nginx_org_global_configuration_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_policy_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_transport_server_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_virtual_server_route_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_virtual_server_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_global_configuration_v1alpha1_manifest_test.go out/test-sentinel-k8s_nginx_org_policy_v1alpha1_manifest_test.go out/test-sentinel-k8s_nginx_org_transport_server_v1alpha1_manifest_test.go out/test-sentinel-k8s_otterize_com_client_intents_v1alpha2_manifest_test.go out/test-sentinel-k8s_otterize_com_kafka_server_config_v1alpha2_manifest_test.go out/test-sentinel-k8s_otterize_com_protected_service_v1alpha2_manifest_test.go out/test-sentinel-k8s_otterize_com_client_intents_v1alpha3_manifest_test.go out/test-sentinel-k8s_otterize_com_kafka_server_config_v1alpha3_manifest_test.go out/test-sentinel-k8s_otterize_com_protected_service_v1alpha3_manifest_test.go out/test-sentinel-k8up_io_archive_v1_manifest_test.go out/test-sentinel-k8up_io_backup_v1_manifest_test.go out/test-sentinel-k8up_io_check_v1_manifest_test.go out/test-sentinel-k8up_io_pre_backup_pod_v1_manifest_test.go out/test-sentinel-k8up_io_prune_v1_manifest_test.go out/test-sentinel-k8up_io_restore_v1_manifest_test.go out/test-sentinel-k8up_io_schedule_v1_manifest_test.go out/test-sentinel-k8up_io_snapshot_v1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_cruise_control_operation_v1alpha1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_kafka_topic_v1alpha1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_kafka_user_v1alpha1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_kafka_cluster_v1beta1_manifest_test.go out/test-sentinel-kafka_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/test-sentinel-kafka_stackable_tech_kafka_cluster_v1alpha1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_topic_v1alpha1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_user_v1alpha1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_topic_v1beta1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_user_v1beta1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_bridge_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_connect_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_connector_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_mirror_maker2_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_mirror_maker_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_node_pool_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_rebalance_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_topic_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_user_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_v1beta2_manifest_test.go out/test-sentinel-kamaji_clastix_io_data_store_v1alpha1_manifest_test.go out/test-sentinel-kamaji_clastix_io_tenant_control_plane_v1alpha1_manifest_test.go out/test-sentinel-karpenter_k8s_aws_ec2_node_class_v1_manifest_test.go out/test-sentinel-karpenter_k8s_aws_ec2_node_class_v1beta1_manifest_test.go out/test-sentinel-karpenter_sh_node_claim_v1_manifest_test.go out/test-sentinel-karpenter_sh_node_pool_v1_manifest_test.go out/test-sentinel-karpenter_sh_node_claim_v1beta1_manifest_test.go out/test-sentinel-karpenter_sh_node_pool_v1beta1_manifest_test.go out/test-sentinel-keda_sh_cluster_trigger_authentication_v1alpha1_manifest_test.go out/test-sentinel-keda_sh_scaled_job_v1alpha1_manifest_test.go out/test-sentinel-keda_sh_scaled_object_v1alpha1_manifest_test.go out/test-sentinel-keda_sh_trigger_authentication_v1alpha1_manifest_test.go out/test-sentinel-keycloak_k8s_reddec_net_keycloak_client_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_backup_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_client_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_realm_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_user_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_v1alpha1_manifest_test.go out/test-sentinel-keyspaces_services_k8s_aws_keyspace_v1alpha1_manifest_test.go out/test-sentinel-keyspaces_services_k8s_aws_table_v1alpha1_manifest_test.go out/test-sentinel-kiali_io_kiali_v1alpha1_manifest_test.go out/test-sentinel-kibana_k8s_elastic_co_kibana_v1_manifest_test.go out/test-sentinel-kibana_k8s_elastic_co_kibana_v1beta1_manifest_test.go out/test-sentinel-kinesis_services_k8s_aws_stream_v1alpha1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_module_v1beta1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_node_modules_config_v1beta1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta2_manifest_test.go out/test-sentinel-kms_services_k8s_aws_alias_v1alpha1_manifest_test.go out/test-sentinel-kms_services_k8s_aws_grant_v1alpha1_manifest_test.go out/test-sentinel-kms_services_k8s_aws_key_v1alpha1_manifest_test.go out/test-sentinel-kuadrant_io_dns_record_v1alpha1_manifest_test.go out/test-sentinel-kuadrant_io_managed_zone_v1alpha1_manifest_test.go out/test-sentinel-kuadrant_io_kuadrant_v1beta1_manifest_test.go out/test-sentinel-kuadrant_io_auth_policy_v1beta2_manifest_test.go out/test-sentinel-kuadrant_io_rate_limit_policy_v1beta2_manifest_test.go out/test-sentinel-kube_green_com_sleep_info_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_cluster_operation_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_cluster_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_local_artifact_set_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_manifest_v1alpha1_manifest_test.go out/test-sentinel-kubecost_com_turndown_schedule_v1alpha1_manifest_test.go out/test-sentinel-kubevious_io_workload_profile_v1alpha1_manifest_test.go out/test-sentinel-kubevious_io_workload_v1alpha1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_cluster_queue_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_workload_v1beta1_manifest_test.go out/test-sentinel-kuma_io_circuit_breaker_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_container_patch_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_dataplane_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_dataplane_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_external_service_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_fault_injection_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_health_check_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_access_log_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_circuit_breaker_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_fault_injection_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_config_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_instance_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_health_check_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_http_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_load_balancing_strategy_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_proxy_patch_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_rate_limit_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_retry_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_tcp_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_timeout_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_trace_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_traffic_permission_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_proxy_template_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_rate_limit_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_retry_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_service_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_timeout_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_log_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_permission_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_trace_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_virtual_outbound_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_egress_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_egress_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_ingress_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_ingress_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_v1alpha1_manifest_test.go out/test-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1_manifest_test.go out/test-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta1_manifest_test.go out/test-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta2_manifest_test.go out/test-sentinel-kyverno_io_cluster_policy_v1_manifest_test.go out/test-sentinel-kyverno_io_policy_v1_manifest_test.go out/test-sentinel-kyverno_io_admission_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_background_scan_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_cluster_admission_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_cluster_background_scan_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_update_request_v1beta1_manifest_test.go out/test-sentinel-kyverno_io_admission_report_v2_manifest_test.go out/test-sentinel-kyverno_io_background_scan_report_v2_manifest_test.go out/test-sentinel-kyverno_io_cleanup_policy_v2_manifest_test.go out/test-sentinel-kyverno_io_cluster_admission_report_v2_manifest_test.go out/test-sentinel-kyverno_io_cluster_background_scan_report_v2_manifest_test.go out/test-sentinel-kyverno_io_cluster_cleanup_policy_v2_manifest_test.go out/test-sentinel-kyverno_io_policy_exception_v2_manifest_test.go out/test-sentinel-kyverno_io_update_request_v2_manifest_test.go out/test-sentinel-kyverno_io_cleanup_policy_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_cluster_cleanup_policy_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_global_context_entry_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_policy_exception_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_cleanup_policy_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_cluster_cleanup_policy_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_cluster_policy_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_policy_exception_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_policy_v2beta1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_alias_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_code_signing_config_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_event_source_mapping_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_function_url_config_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_function_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_layer_version_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_version_v1alpha1_manifest_test.go out/test-sentinel-lb_lbconfig_carlosedp_com_external_load_balancer_v1_manifest_test.go out/test-sentinel-leaksignal_com_cluster_leaksignal_istio_v1_manifest_test.go out/test-sentinel-leaksignal_com_leaksignal_istio_v1_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta4_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta4_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta4_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta5_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta5_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta5_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta6_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta6_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta6_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta7_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta7_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta7_manifest_test.go out/test-sentinel-limitador_kuadrant_io_limitador_v1alpha1_manifest_test.go out/test-sentinel-listeners_stackable_tech_listener_class_v1alpha1_manifest_test.go out/test-sentinel-listeners_stackable_tech_listener_v1alpha1_manifest_test.go out/test-sentinel-listeners_stackable_tech_pod_listeners_v1alpha1_manifest_test.go out/test-sentinel-litmuschaos_io_chaos_engine_v1alpha1_manifest_test.go out/test-sentinel-litmuschaos_io_chaos_experiment_v1alpha1_manifest_test.go out/test-sentinel-litmuschaos_io_chaos_result_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_flow_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_output_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_flow_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_logging_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_output_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_output_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_logging_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_node_agent_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_output_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_cluster_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_cluster_output_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_output_v1beta1_manifest_test.go out/test-sentinel-logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest_test.go out/test-sentinel-logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest_test.go out/test-sentinel-loki_grafana_com_alerting_rule_v1_manifest_test.go out/test-sentinel-loki_grafana_com_loki_stack_v1_manifest_test.go out/test-sentinel-loki_grafana_com_recording_rule_v1_manifest_test.go out/test-sentinel-loki_grafana_com_ruler_config_v1_manifest_test.go out/test-sentinel-loki_grafana_com_alerting_rule_v1beta1_manifest_test.go out/test-sentinel-loki_grafana_com_loki_stack_v1beta1_manifest_test.go out/test-sentinel-loki_grafana_com_recording_rule_v1beta1_manifest_test.go out/test-sentinel-loki_grafana_com_ruler_config_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_data_source_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_manager_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backup_target_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backup_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backup_volume_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_engine_image_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_engine_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_instance_manager_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_node_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_recurring_job_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_replica_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_setting_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_share_manager_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_volume_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_data_source_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backing_image_manager_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backing_image_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_backing_image_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_target_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_volume_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_engine_image_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_engine_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_instance_manager_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_node_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_orphan_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_recurring_job_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_replica_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_setting_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_share_manager_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_snapshot_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_support_bundle_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_system_backup_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_system_restore_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_volume_attachment_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_volume_v1beta2_manifest_test.go out/test-sentinel-m4e_krestomat_io_moodle_v1alpha1_manifest_test.go out/test-sentinel-m4e_krestomat_io_nginx_v1alpha1_manifest_test.go out/test-sentinel-m4e_krestomat_io_phpfpm_v1alpha1_manifest_test.go out/test-sentinel-m4e_krestomat_io_routine_v1alpha1_manifest_test.go out/test-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_template_v1alpha1_manifest_test.go out/test-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_v1alpha1_manifest_test.go out/test-sentinel-maps_k8s_elastic_co_elastic_maps_server_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_backup_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_connection_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_database_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_grant_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_maria_db_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_restore_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_sql_job_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_user_v1alpha1_manifest_test.go out/test-sentinel-marin3r_3scale_net_envoy_config_revision_v1alpha1_manifest_test.go out/test-sentinel-marin3r_3scale_net_envoy_config_v1alpha1_manifest_test.go out/test-sentinel-mattermost_com_cluster_installation_v1alpha1_manifest_test.go out/test-sentinel-mattermost_com_mattermost_restore_db_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_acl_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_user_v1alpha1_manifest_test.go out/test-sentinel-metacontroller_k8s_io_composite_controller_v1alpha1_manifest_test.go out/test-sentinel-metacontroller_k8s_io_controller_revision_v1alpha1_manifest_test.go out/test-sentinel-metacontroller_k8s_io_decorator_controller_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_bare_metal_host_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_bmc_event_subscription_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_data_image_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_firmware_schema_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_hardware_data_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_host_firmware_components_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_host_firmware_settings_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_preprovisioning_image_v1alpha1_manifest_test.go out/test-sentinel-minio_min_io_tenant_v2_manifest_test.go out/test-sentinel-mirrors_kts_studio_secret_mirror_v1alpha1_manifest_test.go out/test-sentinel-mirrors_kts_studio_secret_mirror_v1alpha2_manifest_test.go out/test-sentinel-model_kubedl_io_model_v1alpha1_manifest_test.go out/test-sentinel-model_kubedl_io_model_version_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_alertmanager_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_pod_monitor_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_probe_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_prometheus_rule_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_prometheus_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_service_monitor_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_thanos_ruler_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_alertmanager_config_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_prometheus_agent_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_scrape_config_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_alertmanager_config_v1beta1_manifest_test.go out/test-sentinel-monocle_monocle_change_metrics_io_monocle_v1alpha1_manifest_test.go out/test-sentinel-mq_services_k8s_aws_broker_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_info_import_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_gateway_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_label_identity_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_member_cluster_announce_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_multi_cluster_config_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_resource_export_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_resource_import_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_claim_v1alpha2_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha2_manifest_test.go out/test-sentinel-multicluster_x_k8s_io_applied_work_v1alpha1_manifest_test.go out/test-sentinel-multicluster_x_k8s_io_service_import_v1alpha1_manifest_test.go out/test-sentinel-multicluster_x_k8s_io_work_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_metadata_v1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_v1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_modify_set_v1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_image_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_metadata_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_modify_set_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_metadata_v1beta1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_v1beta1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_modify_set_v1beta1_manifest_test.go out/test-sentinel-nativestor_alauda_io_raw_device_v1_manifest_test.go out/test-sentinel-netchecks_io_network_assertion_v1_manifest_test.go out/test-sentinel-networkfirewall_services_k8s_aws_firewall_policy_v1alpha1_manifest_test.go out/test-sentinel-networkfirewall_services_k8s_aws_firewall_v1alpha1_manifest_test.go out/test-sentinel-networkfirewall_services_k8s_aws_rule_group_v1alpha1_manifest_test.go out/test-sentinel-networking_gke_io_gcp_backend_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_gcp_gateway_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_health_check_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_lb_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_managed_certificate_v1_manifest_test.go out/test-sentinel-networking_istio_io_destination_rule_v1_manifest_test.go out/test-sentinel-networking_istio_io_gateway_v1_manifest_test.go out/test-sentinel-networking_istio_io_service_entry_v1_manifest_test.go out/test-sentinel-networking_istio_io_sidecar_v1_manifest_test.go out/test-sentinel-networking_istio_io_virtual_service_v1_manifest_test.go out/test-sentinel-networking_istio_io_workload_entry_v1_manifest_test.go out/test-sentinel-networking_istio_io_workload_group_v1_manifest_test.go out/test-sentinel-networking_istio_io_destination_rule_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_envoy_filter_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_gateway_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_service_entry_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_sidecar_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_virtual_service_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_workload_entry_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_workload_group_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_destination_rule_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_gateway_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_proxy_config_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_service_entry_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_sidecar_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_virtual_service_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_workload_entry_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_workload_group_v1beta1_manifest_test.go out/test-sentinel-networking_k8s_aws_policy_endpoint_v1alpha1_manifest_test.go out/test-sentinel-networking_k8s_io_ingress_class_v1_manifest_test.go out/test-sentinel-networking_k8s_io_ingress_v1_manifest_test.go out/test-sentinel-networking_k8s_io_network_policy_v1_manifest_test.go out/test-sentinel-networking_karmada_io_multi_cluster_ingress_v1alpha1_manifest_test.go out/test-sentinel-networking_karmada_io_multi_cluster_service_v1alpha1_manifest_test.go out/test-sentinel-nfd_k8s_sigs_io_node_feature_rule_v1alpha1_manifest_test.go out/test-sentinel-nfd_kubernetes_io_node_feature_discovery_v1_manifest_test.go out/test-sentinel-nfd_kubernetes_io_node_feature_rule_v1alpha1_manifest_test.go out/test-sentinel-nifi_stackable_tech_nifi_cluster_v1alpha1_manifest_test.go out/test-sentinel-nodeinfo_volcano_sh_numatopology_v1alpha1_manifest_test.go out/test-sentinel-notebook_kubedl_io_notebook_v1alpha1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_receiver_v1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_alert_v1beta1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_provider_v1beta1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_alert_v1beta2_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_provider_v1beta2_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta2_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_alert_v1beta3_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_provider_v1beta3_manifest_test.go out/test-sentinel-objectbucket_io_object_bucket_claim_v1alpha1_manifest_test.go out/test-sentinel-objectbucket_io_object_bucket_v1alpha1_manifest_test.go out/test-sentinel-ocmagent_managed_openshift_io_managed_fleet_notification_v1alpha1_manifest_test.go out/test-sentinel-ocmagent_managed_openshift_io_managed_notification_v1alpha1_manifest_test.go out/test-sentinel-ocmagent_managed_openshift_io_ocm_agent_v1alpha1_manifest_test.go out/test-sentinel-onepassword_com_one_password_item_v1_manifest_test.go out/test-sentinel-opa_stackable_tech_opa_cluster_v1alpha1_manifest_test.go out/test-sentinel-opensearchservice_services_k8s_aws_domain_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_instrumentation_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_op_amp_bridge_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_open_telemetry_collector_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_open_telemetry_collector_v1beta1_manifest_test.go out/test-sentinel-operations_kubeedge_io_node_upgrade_job_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_csp_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_database_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_enforcer_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_gateway_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_kube_enforcer_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_scanner_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_server_v1alpha1_manifest_test.go out/test-sentinel-operator_authorino_kuadrant_io_authorino_v1beta1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_addon_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cryostat_io_cryostat_v1beta1_manifest_test.go out/test-sentinel-operator_cryostat_io_cryostat_v1beta2_manifest_test.go out/test-sentinel-operator_knative_dev_knative_eventing_v1beta1_manifest_test.go out/test-sentinel-operator_knative_dev_knative_serving_v1beta1_manifest_test.go out/test-sentinel-operator_marin3r_3scale_net_discovery_service_certificate_v1alpha1_manifest_test.go out/test-sentinel-operator_marin3r_3scale_net_discovery_service_v1alpha1_manifest_test.go out/test-sentinel-operator_marin3r_3scale_net_envoy_deployment_v1alpha1_manifest_test.go out/test-sentinel-operator_open_cluster_management_io_cluster_manager_v1_manifest_test.go out/test-sentinel-operator_open_cluster_management_io_klusterlet_v1_manifest_test.go out/test-sentinel-operator_shipwright_io_shipwright_build_v1alpha1_manifest_test.go out/test-sentinel-operator_tigera_io_amazon_cloud_integration_v1_manifest_test.go out/test-sentinel-operator_tigera_io_api_server_v1_manifest_test.go out/test-sentinel-operator_tigera_io_application_layer_v1_manifest_test.go out/test-sentinel-operator_tigera_io_authentication_v1_manifest_test.go out/test-sentinel-operator_tigera_io_compliance_v1_manifest_test.go out/test-sentinel-operator_tigera_io_egress_gateway_v1_manifest_test.go out/test-sentinel-operator_tigera_io_image_set_v1_manifest_test.go out/test-sentinel-operator_tigera_io_installation_v1_manifest_test.go out/test-sentinel-operator_tigera_io_intrusion_detection_v1_manifest_test.go out/test-sentinel-operator_tigera_io_log_collector_v1_manifest_test.go out/test-sentinel-operator_tigera_io_log_storage_v1_manifest_test.go out/test-sentinel-operator_tigera_io_management_cluster_connection_v1_manifest_test.go out/test-sentinel-operator_tigera_io_management_cluster_v1_manifest_test.go out/test-sentinel-operator_tigera_io_manager_v1_manifest_test.go out/test-sentinel-operator_tigera_io_monitor_v1_manifest_test.go out/test-sentinel-operator_tigera_io_packet_capture_v1_manifest_test.go out/test-sentinel-operator_tigera_io_policy_recommendation_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tenant_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tigera_status_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tls_pass_through_route_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tls_terminated_route_v1_manifest_test.go out/test-sentinel-operator_tigera_io_amazon_cloud_integration_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_alert_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_auth_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_cluster_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_probe_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_rule_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_single_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_user_v1beta1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_backup_schedule_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_backup_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_config_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_cron_anything_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_database_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_export_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_import_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_instance_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_pitr_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_release_v1alpha1_manifest_test.go out/test-sentinel-org_eclipse_che_che_cluster_v1_manifest_test.go out/test-sentinel-org_eclipse_che_che_cluster_v2_manifest_test.go out/test-sentinel-organizations_services_k8s_aws_organizational_unit_v1alpha1_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_backup_v2_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_cluster_v2_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_restore_v2_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_upgrade_v2_manifest_test.go out/test-sentinel-pipes_services_k8s_aws_pipe_v1alpha1_manifest_test.go out/test-sentinel-pkg_crossplane_io_configuration_revision_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_configuration_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_provider_revision_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_provider_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_controller_config_v1alpha1_manifest_test.go out/test-sentinel-pkg_crossplane_io_lock_v1beta1_manifest_test.go out/test-sentinel-policy_clusterpedia_io_cluster_import_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_clusterpedia_io_pedia_cluster_lifecycle_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_cluster_override_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_federated_resource_quota_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_override_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_kubeedge_io_service_account_access_v1alpha1_manifest_test.go out/test-sentinel-policy_networking_k8s_io_admin_network_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_networking_k8s_io_baseline_admin_network_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_pod_disruption_budget_v1_manifest_test.go out/test-sentinel-postgres_operator_crunchydata_com_pg_admin_v1beta1_manifest_test.go out/test-sentinel-postgres_operator_crunchydata_com_pg_upgrade_v1beta1_manifest_test.go out/test-sentinel-postgres_operator_crunchydata_com_postgres_cluster_v1beta1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_backup_v1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_cluster_v1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_pooler_v1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_scheduled_backup_v1_manifest_test.go out/test-sentinel-projectcontour_io_http_proxy_v1_manifest_test.go out/test-sentinel-projectcontour_io_tls_certificate_delegation_v1_manifest_test.go out/test-sentinel-projectcontour_io_contour_configuration_v1alpha1_manifest_test.go out/test-sentinel-projectcontour_io_contour_deployment_v1alpha1_manifest_test.go out/test-sentinel-projectcontour_io_extension_service_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_alert_manager_definition_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_logging_configuration_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_rule_groups_namespace_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_workspace_v1alpha1_manifest_test.go out/test-sentinel-ps_percona_com_percona_server_my_sql_v1alpha1_manifest_test.go out/test-sentinel-ps_percona_com_percona_server_my_sql_backup_v1alpha1_manifest_test.go out/test-sentinel-ps_percona_com_percona_server_my_sql_restore_v1alpha1_manifest_test.go out/test-sentinel-psmdb_percona_com_percona_server_mongo_db_v1_manifest_test.go out/test-sentinel-psmdb_percona_com_percona_server_mongo_db_backup_v1_manifest_test.go out/test-sentinel-psmdb_percona_com_percona_server_mongo_db_restore_v1_manifest_test.go out/test-sentinel-ptp_openshift_io_node_ptp_device_v1_manifest_test.go out/test-sentinel-ptp_openshift_io_ptp_config_v1_manifest_test.go out/test-sentinel-ptp_openshift_io_ptp_operator_config_v1_manifest_test.go out/test-sentinel-pubsubplus_solace_com_pub_sub_plus_event_broker_v1beta1_manifest_test.go out/test-sentinel-pxc_percona_com_percona_xtra_db_cluster_backup_v1_manifest_test.go out/test-sentinel-pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest_test.go out/test-sentinel-pxc_percona_com_percona_xtra_db_cluster_v1_manifest_test.go out/test-sentinel-quay_redhat_com_quay_registry_v1_manifest_test.go out/test-sentinel-quota_codeflare_dev_quota_subtree_v1alpha1_manifest_test.go out/test-sentinel-ray_io_ray_cluster_v1_manifest_test.go out/test-sentinel-ray_io_ray_job_v1_manifest_test.go out/test-sentinel-ray_io_ray_service_v1_manifest_test.go out/test-sentinel-ray_io_ray_cluster_v1alpha1_manifest_test.go out/test-sentinel-ray_io_ray_job_v1alpha1_manifest_test.go out/test-sentinel-ray_io_ray_service_v1alpha1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_cluster_role_binding_v1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_cluster_role_v1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_role_binding_v1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_role_v1_manifest_test.go out/test-sentinel-rbacmanager_reactiveops_io_rbac_definition_v1beta1_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_component_v1_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_operation_v1_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_component_v1beta2_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_operation_v1beta2_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_cluster_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_proxy_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_global_cluster_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_group_config_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_keepalived_group_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_namespace_config_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_patch_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_user_config_v1alpha1_manifest_test.go out/test-sentinel-registry_apicur_io_apicurio_registry_v1_manifest_test.go out/test-sentinel-registry_devfile_io_cluster_devfile_registries_list_v1alpha1_manifest_test.go out/test-sentinel-registry_devfile_io_devfile_registries_list_v1alpha1_manifest_test.go out/test-sentinel-registry_devfile_io_devfile_registry_v1alpha1_manifest_test.go out/test-sentinel-reliablesyncs_kubeedge_io_cluster_object_sync_v1alpha1_manifest_test.go out/test-sentinel-reliablesyncs_kubeedge_io_object_sync_v1alpha1_manifest_test.go out/test-sentinel-remediation_medik8s_io_node_health_check_v1alpha1_manifest_test.go out/test-sentinel-repo_manager_pulpproject_org_pulp_backup_v1beta2_manifest_test.go out/test-sentinel-repo_manager_pulpproject_org_pulp_restore_v1beta2_manifest_test.go out/test-sentinel-repo_manager_pulpproject_org_pulp_v1beta2_manifest_test.go out/test-sentinel-reports_kyverno_io_cluster_ephemeral_report_v1_manifest_test.go out/test-sentinel-reports_kyverno_io_ephemeral_report_v1_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_login_rule_v1_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_okta_import_rule_v1_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_provision_token_v2_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_saml_connector_v2_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_user_v2_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_github_connector_v3_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_oidc_connector_v3_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_role_v5_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_role_v6_manifest_test.go out/test-sentinel-ripsaw_cloudbulldozer_io_benchmark_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_broker_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_console_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_name_service_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_topic_transfer_v1alpha1_manifest_test.go out/test-sentinel-route53_services_k8s_aws_hosted_zone_v1alpha1_manifest_test.go out/test-sentinel-route53_services_k8s_aws_record_set_v1alpha1_manifest_test.go out/test-sentinel-route53resolver_services_k8s_aws_resolver_endpoint_v1alpha1_manifest_test.go out/test-sentinel-route53resolver_services_k8s_aws_resolver_rule_v1alpha1_manifest_test.go out/test-sentinel-rules_kubeedge_io_rule_endpoint_v1_manifest_test.go out/test-sentinel-rules_kubeedge_io_rule_v1_manifest_test.go out/test-sentinel-runtime_cluster_x_k8s_io_extension_config_v1alpha1_manifest_test.go out/test-sentinel-s3_services_k8s_aws_bucket_v1alpha1_manifest_test.go out/test-sentinel-s3_snappcloud_io_s3_bucket_v1alpha1_manifest_test.go out/test-sentinel-s3_snappcloud_io_s3_user_claim_v1alpha1_manifest_test.go out/test-sentinel-s3_snappcloud_io_s3_user_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_app_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_data_quality_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_domain_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_endpoint_config_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_endpoint_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_feature_group_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_hyper_parameter_tuning_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_bias_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_explainability_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_package_group_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_package_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_quality_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_monitoring_schedule_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_notebook_instance_lifecycle_config_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_notebook_instance_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_processing_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_training_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_transform_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_user_profile_v1alpha1_manifest_test.go out/test-sentinel-scheduling_k8s_io_priority_class_v1_manifest_test.go out/test-sentinel-scheduling_koordinator_sh_device_v1alpha1_manifest_test.go out/test-sentinel-scheduling_koordinator_sh_pod_migration_job_v1alpha1_manifest_test.go out/test-sentinel-scheduling_koordinator_sh_reservation_v1alpha1_manifest_test.go out/test-sentinel-scheduling_sigs_k8s_io_elastic_quota_v1alpha1_manifest_test.go out/test-sentinel-scheduling_sigs_k8s_io_pod_group_v1alpha1_manifest_test.go out/test-sentinel-scheduling_volcano_sh_pod_group_v1beta1_manifest_test.go out/test-sentinel-scheduling_volcano_sh_queue_v1beta1_manifest_test.go out/test-sentinel-schemas_schemahero_io_data_type_v1alpha4_manifest_test.go out/test-sentinel-schemas_schemahero_io_migration_v1alpha4_manifest_test.go out/test-sentinel-schemas_schemahero_io_table_v1alpha4_manifest_test.go out/test-sentinel-scylla_scylladb_com_scylla_cluster_v1_manifest_test.go out/test-sentinel-scylla_scylladb_com_node_config_v1alpha1_manifest_test.go out/test-sentinel-scylla_scylladb_com_scylla_operator_config_v1alpha1_manifest_test.go out/test-sentinel-secretgenerator_mittwald_de_basic_auth_v1alpha1_manifest_test.go out/test-sentinel-secretgenerator_mittwald_de_ssh_key_pair_v1alpha1_manifest_test.go out/test-sentinel-secretgenerator_mittwald_de_string_secret_v1alpha1_manifest_test.go out/test-sentinel-secrets_crossplane_io_store_config_v1alpha1_manifest_test.go out/test-sentinel-secrets_doppler_com_doppler_secret_v1alpha1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_hcp_auth_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_hcp_vault_secrets_app_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_auth_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_connection_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_dynamic_secret_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_pki_secret_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_static_secret_v1beta1_manifest_test.go out/test-sentinel-secrets_stackable_tech_secret_class_v1alpha1_manifest_test.go out/test-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1_manifest_test.go out/test-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1alpha1_manifest_test.go out/test-sentinel-secretsmanager_services_k8s_aws_secret_v1alpha1_manifest_test.go out/test-sentinel-secscan_quay_redhat_com_image_manifest_vuln_v1alpha1_manifest_test.go out/test-sentinel-security_istio_io_authorization_policy_v1_manifest_test.go out/test-sentinel-security_istio_io_peer_authentication_v1_manifest_test.go out/test-sentinel-security_istio_io_request_authentication_v1_manifest_test.go out/test-sentinel-security_istio_io_authorization_policy_v1beta1_manifest_test.go out/test-sentinel-security_istio_io_peer_authentication_v1beta1_manifest_test.go out/test-sentinel-security_istio_io_request_authentication_v1beta1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_app_armor_profile_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_profile_binding_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_profile_recording_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_security_profile_node_status_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_security_profiles_operator_daemon_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_raw_selinux_profile_v1alpha2_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_selinux_profile_v1alpha2_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_seccomp_profile_v1beta1_manifest_test.go out/test-sentinel-self_node_remediation_medik8s_io_self_node_remediation_config_v1alpha1_manifest_test.go out/test-sentinel-self_node_remediation_medik8s_io_self_node_remediation_template_v1alpha1_manifest_test.go out/test-sentinel-self_node_remediation_medik8s_io_self_node_remediation_v1alpha1_manifest_test.go out/test-sentinel-sematext_com_sematext_agent_v1_manifest_test.go out/test-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1alpha3_manifest_test.go out/test-sentinel-servicebinding_io_service_binding_v1alpha3_manifest_test.go out/test-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1beta1_manifest_test.go out/test-sentinel-servicebinding_io_service_binding_v1beta1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_istio_control_plane_v1alpha1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_istio_mesh_gateway_v1alpha1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_istio_mesh_v1alpha1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_peer_istio_control_plane_v1alpha1_manifest_test.go out/test-sentinel-services_k8s_aws_adopted_resource_v1alpha1_manifest_test.go out/test-sentinel-services_k8s_aws_field_export_v1alpha1_manifest_test.go out/test-sentinel-serving_kubedl_io_inference_v1alpha1_manifest_test.go out/test-sentinel-sfn_services_k8s_aws_activity_v1alpha1_manifest_test.go out/test-sentinel-sfn_services_k8s_aws_state_machine_v1alpha1_manifest_test.go out/test-sentinel-site_superedge_io_node_group_v1alpha1_manifest_test.go out/test-sentinel-site_superedge_io_node_unit_v1alpha1_manifest_test.go out/test-sentinel-slo_koordinator_sh_node_metric_v1alpha1_manifest_test.go out/test-sentinel-slo_koordinator_sh_node_slo_v1alpha1_manifest_test.go out/test-sentinel-sloth_slok_dev_prometheus_service_level_v1_manifest_test.go out/test-sentinel-snapscheduler_backube_snapshot_schedule_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1beta1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1beta1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1beta1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_platform_application_v1alpha1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_platform_endpoint_v1alpha1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_subscription_v1alpha1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_topic_v1alpha1_manifest_test.go out/test-sentinel-sonataflow_org_sonata_flow_build_v1alpha08_manifest_test.go out/test-sentinel-sonataflow_org_sonata_flow_platform_v1alpha08_manifest_test.go out/test-sentinel-sonataflow_org_sonata_flow_v1alpha08_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_bucket_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_git_repository_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_chart_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_repository_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_bucket_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_bucket_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_oci_repository_v1beta2_manifest_test.go out/test-sentinel-spark_stackable_tech_spark_application_v1alpha1_manifest_test.go out/test-sentinel-spark_stackable_tech_spark_history_server_v1alpha1_manifest_test.go out/test-sentinel-sparkoperator_k8s_io_scheduled_spark_application_v1beta2_manifest_test.go out/test-sentinel-sparkoperator_k8s_io_spark_application_v1beta2_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_identity_v1alpha1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v1alpha1_manifest_test.go out/test-sentinel-spv_no_azure_managed_identity_v1alpha1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v2alpha1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v2beta1_manifest_test.go out/test-sentinel-sqs_services_k8s_aws_queue_v1alpha1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_ovs_network_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_ib_network_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_node_policy_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_node_state_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_pool_config_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_operator_config_v1_manifest_test.go out/test-sentinel-storage_k8s_io_csi_driver_v1_manifest_test.go out/test-sentinel-storage_k8s_io_csi_node_v1_manifest_test.go out/test-sentinel-storage_k8s_io_storage_class_v1_manifest_test.go out/test-sentinel-storage_k8s_io_volume_attachment_v1_manifest_test.go out/test-sentinel-storage_kubeblocks_io_storage_provider_v1alpha1_manifest_test.go out/test-sentinel-storageos_com_storage_os_cluster_v1_manifest_test.go out/test-sentinel-sts_min_io_policy_binding_v1alpha1_manifest_test.go out/test-sentinel-sts_min_io_policy_binding_v1beta1_manifest_test.go out/test-sentinel-stunner_l7mp_io_dataplane_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_gateway_config_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_static_service_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_udp_route_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_dataplane_v1alpha1_manifest_test.go out/test-sentinel-stunner_l7mp_io_gateway_config_v1alpha1_manifest_test.go out/test-sentinel-stunner_l7mp_io_static_service_v1alpha1_manifest_test.go out/test-sentinel-submariner_io_broker_v1alpha1_manifest_test.go out/test-sentinel-submariner_io_service_discovery_v1alpha1_manifest_test.go out/test-sentinel-submariner_io_submariner_v1alpha1_manifest_test.go out/test-sentinel-superset_stackable_tech_druid_connection_v1alpha1_manifest_test.go out/test-sentinel-superset_stackable_tech_superset_cluster_v1alpha1_manifest_test.go out/test-sentinel-telemetry_istio_io_telemetry_v1_manifest_test.go out/test-sentinel-telemetry_istio_io_telemetry_v1alpha1_manifest_test.go out/test-sentinel-templates_gatekeeper_sh_constraint_template_v1_manifest_test.go out/test-sentinel-templates_gatekeeper_sh_constraint_template_v1alpha1_manifest_test.go out/test-sentinel-templates_gatekeeper_sh_constraint_template_v1beta1_manifest_test.go out/test-sentinel-tempo_grafana_com_tempo_monolithic_v1alpha1_manifest_test.go out/test-sentinel-tempo_grafana_com_tempo_stack_v1alpha1_manifest_test.go out/test-sentinel-temporal_io_temporal_cluster_client_v1beta1_manifest_test.go out/test-sentinel-temporal_io_temporal_cluster_v1beta1_manifest_test.go out/test-sentinel-temporal_io_temporal_namespace_v1beta1_manifest_test.go out/test-sentinel-temporal_io_temporal_worker_process_v1beta1_manifest_test.go out/test-sentinel-tests_testkube_io_script_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_execution_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_source_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_execution_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_trigger_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_v1_manifest_test.go out/test-sentinel-tests_testkube_io_script_v2_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_v2_manifest_test.go out/test-sentinel-tests_testkube_io_test_v2_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_v3_manifest_test.go out/test-sentinel-tests_testkube_io_test_v3_manifest_test.go out/test-sentinel-tf_tungsten_io_analytics_alarm_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_analytics_snmp_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_analytics_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_cassandra_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_config_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_control_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_kubemanager_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_manager_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_query_engine_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_rabbitmq_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_redis_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_vrouter_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_webui_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_zookeeper_v1alpha1_manifest_test.go out/test-sentinel-theketch_io_app_v1beta1_manifest_test.go out/test-sentinel-theketch_io_job_v1beta1_manifest_test.go out/test-sentinel-tinkerbell_org_hardware_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_osie_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_stack_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_template_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_workflow_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_hardware_v1alpha2_manifest_test.go out/test-sentinel-tinkerbell_org_osie_v1alpha2_manifest_test.go out/test-sentinel-tinkerbell_org_template_v1alpha2_manifest_test.go out/test-sentinel-tinkerbell_org_workflow_v1alpha2_manifest_test.go out/test-sentinel-topology_node_k8s_io_node_resource_topology_v1alpha1_manifest_test.go out/test-sentinel-topolvm_cybozu_com_logical_volume_v1_manifest_test.go out/test-sentinel-topolvm_cybozu_com_topolvm_cluster_v2_manifest_test.go out/test-sentinel-traefik_io_ingress_route_tcp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_ingress_route_udp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_ingress_route_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_middleware_tcp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_middleware_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_servers_transport_tcp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_servers_transport_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_tls_option_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_tls_store_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_traefik_service_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_elastic_dl_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_mars_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_mpi_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_py_torch_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_tf_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_xdl_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_xg_boost_job_v1alpha1_manifest_test.go out/test-sentinel-trino_stackable_tech_trino_catalog_v1alpha1_manifest_test.go out/test-sentinel-trino_stackable_tech_trino_cluster_v1alpha1_manifest_test.go out/test-sentinel-trust_cert_manager_io_bundle_v1alpha1_manifest_test.go out/test-sentinel-upgrade_cattle_io_plan_v1_manifest_test.go out/test-sentinel-upgrade_managed_openshift_io_upgrade_config_v1alpha1_manifest_test.go out/test-sentinel-velero_io_backup_repository_v1_manifest_test.go out/test-sentinel-velero_io_backup_storage_location_v1_manifest_test.go out/test-sentinel-velero_io_backup_v1_manifest_test.go out/test-sentinel-velero_io_delete_backup_request_v1_manifest_test.go out/test-sentinel-velero_io_download_request_v1_manifest_test.go out/test-sentinel-velero_io_pod_volume_backup_v1_manifest_test.go out/test-sentinel-velero_io_pod_volume_restore_v1_manifest_test.go out/test-sentinel-velero_io_restore_v1_manifest_test.go out/test-sentinel-velero_io_schedule_v1_manifest_test.go out/test-sentinel-velero_io_server_status_request_v1_manifest_test.go out/test-sentinel-velero_io_volume_snapshot_location_v1_manifest_test.go out/test-sentinel-velero_io_data_download_v2alpha1_manifest_test.go out/test-sentinel-velero_io_data_upload_v2alpha1_manifest_test.go out/test-sentinel-virt_virtink_smartx_com_virtual_machine_migration_v1alpha1_manifest_test.go out/test-sentinel-virt_virtink_smartx_com_virtual_machine_v1alpha1_manifest_test.go out/test-sentinel-volsync_backube_replication_destination_v1alpha1_manifest_test.go out/test-sentinel-volsync_backube_replication_source_v1alpha1_manifest_test.go out/test-sentinel-vpcresources_k8s_aws_cni_node_v1alpha1_manifest_test.go out/test-sentinel-vpcresources_k8s_aws_security_group_policy_v1beta1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_policy_report_v1alpha1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha2_manifest_test.go out/test-sentinel-wgpolicyk8s_io_policy_report_v1alpha2_manifest_test.go out/test-sentinel-wgpolicyk8s_io_cluster_policy_report_v1beta1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_policy_report_v1beta1_manifest_test.go out/test-sentinel-wildfly_org_wild_fly_server_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_cluster_resource_binding_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_resource_binding_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_work_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_cluster_resource_binding_v1alpha2_manifest_test.go out/test-sentinel-work_karmada_io_resource_binding_v1alpha2_manifest_test.go out/test-sentinel-workload_codeflare_dev_app_wrapper_v1beta1_manifest_test.go out/test-sentinel-workload_codeflare_dev_scheduling_spec_v1beta1_manifest_test.go out/test-sentinel-workload_codeflare_dev_app_wrapper_v1beta2_manifest_test.go out/test-sentinel-workloads_kubeblocks_io_instance_set_v1_manifest_test.go out/test-sentinel-workloads_kubeblocks_io_instance_set_v1alpha1_manifest_test.go out/test-sentinel-workloads_kubeblocks_io_replicated_state_machine_v1alpha1_manifest_test.go out/test-sentinel-zonecontrol_k8s_aws_zone_aware_update_v1_manifest_test.go out/test-sentinel-zonecontrol_k8s_aws_zone_disruption_budget_v1_manifest_test.go out/test-sentinel-zookeeper_pravega_io_zookeeper_cluster_v1beta1_manifest_test.go out/test-sentinel-zookeeper_stackable_tech_zookeeper_cluster_v1alpha1_manifest_test.go out/test-sentinel-zookeeper_stackable_tech_zookeeper_znode_v1alpha1_manifest_test.go out/tools-tests-sentinel ## run the unit tests +tests: out/test-sentinel-about_k8s_io_cluster_property_v1alpha1_manifest_test.go out/test-sentinel-acid_zalan_do_operator_configuration_v1_manifest_test.go out/test-sentinel-acid_zalan_do_postgres_team_v1_manifest_test.go out/test-sentinel-acid_zalan_do_postgresql_v1_manifest_test.go out/test-sentinel-acme_cert_manager_io_challenge_v1_manifest_test.go out/test-sentinel-acme_cert_manager_io_order_v1_manifest_test.go out/test-sentinel-acmpca_services_k8s_aws_certificate_authority_activation_v1alpha1_manifest_test.go out/test-sentinel-acmpca_services_k8s_aws_certificate_authority_v1alpha1_manifest_test.go out/test-sentinel-acmpca_services_k8s_aws_certificate_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_autoscaling_listener_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_autoscaling_runner_set_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_ephemeral_runner_set_v1alpha1_manifest_test.go out/test-sentinel-actions_github_com_ephemeral_runner_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_horizontal_runner_autoscaler_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_deployment_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_replica_set_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_set_v1alpha1_manifest_test.go out/test-sentinel-actions_summerwind_dev_runner_v1alpha1_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha3_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha3_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1alpha4_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1alpha4_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_binding_v1beta1_manifest_test.go out/test-sentinel-addons_cluster_x_k8s_io_cluster_resource_set_v1beta1_manifest_test.go out/test-sentinel-admissionregistration_k8s_io_mutating_webhook_configuration_v1_manifest_test.go out/test-sentinel-admissionregistration_k8s_io_validating_webhook_configuration_v1_manifest_test.go out/test-sentinel-agent_k8s_elastic_co_agent_v1alpha1_manifest_test.go out/test-sentinel-airflow_stackable_tech_airflow_cluster_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_aws_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_aws_iam_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_bundles_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_cloud_stack_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_cloud_stack_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_cluster_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_control_plane_upgrade_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_docker_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_eksa_release_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_flux_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_git_ops_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_machine_deployment_upgrade_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_node_upgrade_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_nutanix_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_nutanix_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_oidc_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_snow_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_snow_ip_pool_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_snow_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_tinkerbell_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_tinkerbell_machine_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_tinkerbell_template_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_v_sphere_datacenter_config_v1alpha1_manifest_test.go out/test-sentinel-anywhere_eks_amazonaws_com_v_sphere_machine_config_v1alpha1_manifest_test.go out/test-sentinel-apacheweb_arsenal_dev_apacheweb_v1alpha1_manifest_test.go out/test-sentinel-api_clever_cloud_com_config_provider_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_elastic_search_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_mongo_db_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_my_sql_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_postgre_sql_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_redis_v1_manifest_test.go out/test-sentinel-api_clever_cloud_com_pulsar_v1beta1_manifest_test.go out/test-sentinel-api_kubemod_io_mod_rule_v1beta1_manifest_test.go out/test-sentinel-apicodegen_apimatic_io_api_matic_v1beta1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composite_resource_definition_v1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composition_revision_v1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composition_v1_manifest_test.go out/test-sentinel-apiextensions_crossplane_io_composition_revision_v1beta1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_api_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_authorizer_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_deployment_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_integration_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_route_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_stage_v1alpha1_manifest_test.go out/test-sentinel-apigatewayv2_services_k8s_aws_vpc_link_v1alpha1_manifest_test.go out/test-sentinel-apiregistration_k8s_io_api_service_v1_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_cluster_config_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_consumer_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_global_rule_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_plugin_config_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_route_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_tls_v2_manifest_test.go out/test-sentinel-apisix_apache_org_apisix_upstream_v2_manifest_test.go out/test-sentinel-apm_k8s_elastic_co_apm_server_v1_manifest_test.go out/test-sentinel-apm_k8s_elastic_co_apm_server_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_build_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_infra_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_runtime_v1beta1_manifest_test.go out/test-sentinel-app_kiegroup_org_kogito_supporting_service_v1beta1_manifest_test.go out/test-sentinel-app_lightbend_com_akka_cluster_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_cluster_v1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_active_active_database_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_cluster_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_database_v1alpha1_manifest_test.go out/test-sentinel-app_redislabs_com_redis_enterprise_remote_cluster_v1alpha1_manifest_test.go out/test-sentinel-app_terraform_io_agent_pool_v1alpha2_manifest_test.go out/test-sentinel-app_terraform_io_module_v1alpha2_manifest_test.go out/test-sentinel-app_terraform_io_workspace_v1alpha2_manifest_test.go out/test-sentinel-application_networking_k8s_aws_access_log_policy_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_iam_auth_policy_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_service_import_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_target_group_policy_v1alpha1_manifest_test.go out/test-sentinel-application_networking_k8s_aws_vpc_association_policy_v1alpha1_manifest_test.go out/test-sentinel-applicationautoscaling_services_k8s_aws_scalable_target_v1alpha1_manifest_test.go out/test-sentinel-applicationautoscaling_services_k8s_aws_scaling_policy_v1alpha1_manifest_test.go out/test-sentinel-appmesh_k8s_aws_backend_group_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_gateway_route_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_mesh_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_gateway_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_node_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_router_v1beta2_manifest_test.go out/test-sentinel-appmesh_k8s_aws_virtual_service_v1beta2_manifest_test.go out/test-sentinel-appprotect_f5_com_ap_log_conf_v1beta1_manifest_test.go out/test-sentinel-appprotect_f5_com_ap_policy_v1beta1_manifest_test.go out/test-sentinel-appprotect_f5_com_ap_user_sig_v1beta1_manifest_test.go out/test-sentinel-appprotectdos_f5_com_ap_dos_log_conf_v1beta1_manifest_test.go out/test-sentinel-appprotectdos_f5_com_ap_dos_policy_v1beta1_manifest_test.go out/test-sentinel-appprotectdos_f5_com_dos_protected_resource_v1beta1_manifest_test.go out/test-sentinel-apps_3scale_net_ap_icast_v1alpha1_manifest_test.go out/test-sentinel-apps_3scale_net_api_manager_backup_v1alpha1_manifest_test.go out/test-sentinel-apps_3scale_net_api_manager_restore_v1alpha1_manifest_test.go out/test-sentinel-apps_3scale_net_api_manager_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_base_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_description_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_feed_inventory_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_globalization_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_helm_chart_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_helm_release_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_localization_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_manifest_v1alpha1_manifest_test.go out/test-sentinel-apps_clusternet_io_subscription_v1alpha1_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_broker_v1beta3_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_enterprise_v1beta3_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_plugin_v1beta3_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_broker_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_enterprise_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_plugin_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_rebalance_v1beta4_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_v2alpha1_manifest_test.go out/test-sentinel-apps_emqx_io_emqx_v2beta1_manifest_test.go out/test-sentinel-apps_emqx_io_rebalance_v2beta1_manifest_test.go out/test-sentinel-apps_gitlab_com_git_lab_v1beta1_manifest_test.go out/test-sentinel-apps_gitlab_com_runner_v1beta2_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_definition_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_definition_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_version_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_service_descriptor_v1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_backup_policy_template_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_cluster_version_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_class_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_resource_constraint_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_component_version_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_config_constraint_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_configuration_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_ops_definition_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_ops_request_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_service_descriptor_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeblocks_io_config_constraint_v1beta1_manifest_test.go out/test-sentinel-apps_kubedl_io_cron_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeedge_io_edge_application_v1alpha1_manifest_test.go out/test-sentinel-apps_kubeedge_io_node_group_v1alpha1_manifest_test.go out/test-sentinel-apps_m88i_io_nexus_v1alpha1_manifest_test.go out/test-sentinel-apps_redhat_com_cluster_impairment_v1alpha1_manifest_test.go out/test-sentinel-apps_daemon_set_v1_manifest_test.go out/test-sentinel-apps_deployment_v1_manifest_test.go out/test-sentinel-apps_replica_set_v1_manifest_test.go out/test-sentinel-apps_stateful_set_v1_manifest_test.go out/test-sentinel-aquasecurity_github_io_aqua_starboard_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_app_project_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_application_set_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_application_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_argo_cd_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_argo_cd_export_v1alpha1_manifest_test.go out/test-sentinel-argoproj_io_argo_cd_v1beta1_manifest_test.go out/test-sentinel-asdb_aerospike_com_aerospike_cluster_v1_manifest_test.go out/test-sentinel-asdb_aerospike_com_aerospike_cluster_v1beta1_manifest_test.go out/test-sentinel-atlasmap_io_atlas_map_v1alpha1_manifest_test.go out/test-sentinel-auth_ops42_org_aws_auth_sync_config_v1alpha1_manifest_test.go out/test-sentinel-authentication_stackable_tech_authentication_class_v1alpha1_manifest_test.go out/test-sentinel-authzed_com_spice_db_cluster_v1alpha1_manifest_test.go out/test-sentinel-automation_kubensync_com_managed_resource_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_k8s_elastic_co_elasticsearch_autoscaler_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_checkpoint_v1beta2_manifest_test.go out/test-sentinel-autoscaling_k8s_io_vertical_pod_autoscaler_v1beta2_manifest_test.go out/test-sentinel-autoscaling_karmada_io_cron_federated_hpa_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_karmada_io_federated_hpa_v1alpha1_manifest_test.go out/test-sentinel-autoscaling_horizontal_pod_autoscaler_v1_manifest_test.go out/test-sentinel-autoscaling_horizontal_pod_autoscaler_v2_manifest_test.go out/test-sentinel-awx_ansible_com_awx_v1beta1_manifest_test.go out/test-sentinel-awx_ansible_com_awx_backup_v1beta1_manifest_test.go out/test-sentinel-awx_ansible_com_awx_restore_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_apim_service_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_api_mgmt_api_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_app_insights_api_key_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_app_insights_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_load_balancer_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_network_interface_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_public_ip_address_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_action_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_database_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_failover_group_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_server_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_managed_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sqlv_net_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_virtual_machine_extension_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_virtual_machine_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_vm_scale_set_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_blob_container_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_consumer_group_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_cosmos_db_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_eventhub_namespace_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_eventhub_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_key_vault_key_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_key_vault_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_database_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_server_administrator_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_server_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sqlv_net_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_database_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_user_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sqlv_net_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_redis_cache_action_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_redis_cache_firewall_rule_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_resource_group_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_storage_account_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_virtual_network_v1alpha1_manifest_test.go out/test-sentinel-azure_microsoft_com_blob_container_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sqlaad_user_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_server_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_my_sql_user_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_postgre_sql_server_v1alpha2_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_database_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_failover_group_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_firewall_rule_v1beta1_manifest_test.go out/test-sentinel-azure_microsoft_com_azure_sql_server_v1beta1_manifest_test.go out/test-sentinel-b3scale_infra_run_bbb_frontend_v1_manifest_test.go out/test-sentinel-b3scale_io_bbb_frontend_v1_manifest_test.go out/test-sentinel-batch_cron_job_v1_manifest_test.go out/test-sentinel-batch_job_v1_manifest_test.go out/test-sentinel-batch_volcano_sh_job_v1alpha1_manifest_test.go out/test-sentinel-beat_k8s_elastic_co_beat_v1beta1_manifest_test.go out/test-sentinel-beegfs_csi_netapp_com_beegfs_driver_v1_manifest_test.go out/test-sentinel-binding_operators_coreos_com_service_binding_v1alpha1_manifest_test.go out/test-sentinel-bitnami_com_sealed_secret_v1alpha1_manifest_test.go out/test-sentinel-bmc_tinkerbell_org_job_v1alpha1_manifest_test.go out/test-sentinel-bmc_tinkerbell_org_machine_v1alpha1_manifest_test.go out/test-sentinel-bmc_tinkerbell_org_task_v1alpha1_manifest_test.go out/test-sentinel-boskos_k8s_io_drlc_object_v1_manifest_test.go out/test-sentinel-boskos_k8s_io_resource_object_v1_manifest_test.go out/test-sentinel-bpfman_io_bpf_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_fentry_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_fexit_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_kprobe_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_tc_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_tracepoint_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_uprobe_program_v1alpha1_manifest_test.go out/test-sentinel-bpfman_io_xdp_program_v1alpha1_manifest_test.go out/test-sentinel-bus_volcano_sh_command_v1alpha1_manifest_test.go out/test-sentinel-cache_kubedl_io_cache_backend_v1alpha1_manifest_test.go out/test-sentinel-caching_ibm_com_varnish_cluster_v1alpha1_manifest_test.go out/test-sentinel-camel_apache_org_build_v1_manifest_test.go out/test-sentinel-camel_apache_org_camel_catalog_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_kit_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_platform_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_profile_v1_manifest_test.go out/test-sentinel-camel_apache_org_integration_v1_manifest_test.go out/test-sentinel-camel_apache_org_kamelet_v1_manifest_test.go out/test-sentinel-camel_apache_org_pipe_v1_manifest_test.go out/test-sentinel-camel_apache_org_kamelet_binding_v1alpha1_manifest_test.go out/test-sentinel-camel_apache_org_kamelet_v1alpha1_manifest_test.go out/test-sentinel-canaries_flanksource_com_canary_v1_manifest_test.go out/test-sentinel-canaries_flanksource_com_component_v1_manifest_test.go out/test-sentinel-canaries_flanksource_com_topology_v1_manifest_test.go out/test-sentinel-capabilities_3scale_net_tenant_v1alpha1_manifest_test.go out/test-sentinel-capabilities_3scale_net_active_doc_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_application_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_backend_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_custom_policy_definition_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_developer_account_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_developer_user_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_open_api_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_product_v1beta1_manifest_test.go out/test-sentinel-capabilities_3scale_net_proxy_config_promote_v1beta1_manifest_test.go out/test-sentinel-capsule_clastix_io_capsule_configuration_v1alpha1_manifest_test.go out/test-sentinel-capsule_clastix_io_tenant_v1alpha1_manifest_test.go out/test-sentinel-capsule_clastix_io_tenant_v1beta1_manifest_test.go out/test-sentinel-capsule_clastix_io_capsule_configuration_v1beta2_manifest_test.go out/test-sentinel-capsule_clastix_io_tenant_v1beta2_manifest_test.go out/test-sentinel-cassandra_datastax_com_cassandra_datacenter_v1beta1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_block_pool_rados_namespace_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_block_pool_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_bucket_notification_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_bucket_topic_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_client_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_cluster_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_cosi_driver_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_filesystem_mirror_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_filesystem_sub_volume_group_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_filesystem_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_nfs_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_realm_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_store_user_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_store_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_zone_group_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_object_zone_v1_manifest_test.go out/test-sentinel-ceph_rook_io_ceph_rbd_mirror_v1_manifest_test.go out/test-sentinel-cert_manager_io_certificate_request_v1_manifest_test.go out/test-sentinel-cert_manager_io_certificate_v1_manifest_test.go out/test-sentinel-cert_manager_io_cluster_issuer_v1_manifest_test.go out/test-sentinel-cert_manager_io_issuer_v1_manifest_test.go out/test-sentinel-certificates_k8s_io_certificate_signing_request_v1_manifest_test.go out/test-sentinel-certman_managed_openshift_io_certificate_request_v1alpha1_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_configuration_v1alpha1_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_test_v1alpha1_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_configuration_v1alpha2_manifest_test.go out/test-sentinel-chainsaw_kyverno_io_test_v1alpha2_manifest_test.go out/test-sentinel-chaos_mesh_org_aws_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_azure_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_block_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_dns_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_gcp_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_http_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_io_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_jvm_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_kernel_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_network_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_physical_machine_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_physical_machine_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_http_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_io_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_pod_network_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_remote_cluster_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_schedule_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_status_check_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_stress_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_time_chaos_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_workflow_node_v1alpha1_manifest_test.go out/test-sentinel-chaos_mesh_org_workflow_v1alpha1_manifest_test.go out/test-sentinel-chaosblade_io_chaos_blade_v1alpha1_manifest_test.go out/test-sentinel-charts_amd_com_amdgpu_v1alpha1_manifest_test.go out/test-sentinel-charts_flagsmith_com_flagsmith_v1alpha1_manifest_test.go out/test-sentinel-charts_helm_k8s_io_snyk_monitor_v1alpha1_manifest_test.go out/test-sentinel-charts_opdev_io_synapse_v1alpha1_manifest_test.go out/test-sentinel-charts_operatorhub_io_cockroachdb_v1alpha1_manifest_test.go out/test-sentinel-che_eclipse_org_kubernetes_image_puller_v1alpha1_manifest_test.go out/test-sentinel-chisel_operator_io_exit_node_provisioner_v1_manifest_test.go out/test-sentinel-chisel_operator_io_exit_node_v1_manifest_test.go out/test-sentinel-chisel_operator_io_exit_node_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_clusterwide_envoy_config_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_clusterwide_network_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_egress_gateway_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_envoy_config_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_external_workload_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_identity_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_local_redirect_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_network_policy_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_node_v2_manifest_test.go out/test-sentinel-cilium_io_cilium_bgp_peering_policy_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_cidr_group_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_endpoint_slice_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_l2_announcement_policy_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_load_balancer_ip_pool_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_node_config_v2alpha1_manifest_test.go out/test-sentinel-cilium_io_cilium_pod_ip_pool_v2alpha1_manifest_test.go out/test-sentinel-claudie_io_input_manifest_v1beta1_manifest_test.go out/test-sentinel-cloudformation_linki_space_stack_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_cache_policy_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_distribution_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_function_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_origin_request_policy_v1alpha1_manifest_test.go out/test-sentinel-cloudfront_services_k8s_aws_response_headers_policy_v1alpha1_manifest_test.go out/test-sentinel-cloudtrail_services_k8s_aws_event_data_store_v1alpha1_manifest_test.go out/test-sentinel-cloudtrail_services_k8s_aws_trail_v1alpha1_manifest_test.go out/test-sentinel-cloudwatch_aws_amazon_com_amazon_cloud_watch_agent_v1alpha1_manifest_test.go out/test-sentinel-cloudwatch_aws_amazon_com_instrumentation_v1alpha1_manifest_test.go out/test-sentinel-cloudwatch_services_k8s_aws_metric_alarm_v1alpha1_manifest_test.go out/test-sentinel-cloudwatchlogs_services_k8s_aws_log_group_v1alpha1_manifest_test.go out/test-sentinel-cluster_clusterpedia_io_cluster_sync_resources_v1alpha2_manifest_test.go out/test-sentinel-cluster_clusterpedia_io_pedia_cluster_v1alpha2_manifest_test.go out/test-sentinel-cluster_ipfs_io_circuit_relay_v1alpha1_manifest_test.go out/test-sentinel-cluster_ipfs_io_ipfs_cluster_v1alpha1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_pool_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_set_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_v1alpha3_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_class_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_deployment_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_health_check_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_pool_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_set_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_v1alpha4_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_class_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_cluster_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_deployment_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_health_check_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_pool_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_set_v1beta1_manifest_test.go out/test-sentinel-cluster_x_k8s_io_machine_v1beta1_manifest_test.go out/test-sentinel-clusters_clusternet_io_cluster_registration_request_v1beta1_manifest_test.go out/test-sentinel-clusters_clusternet_io_managed_cluster_v1beta1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_instance_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_quota_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_setup_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_cluster_template_v1alpha1_manifest_test.go out/test-sentinel-clustertemplate_openshift_io_config_v1alpha1_manifest_test.go out/test-sentinel-confidentialcontainers_org_cc_runtime_v1beta1_manifest_test.go out/test-sentinel-config_gatekeeper_sh_config_v1alpha1_manifest_test.go out/test-sentinel-config_grafana_com_project_config_v1_manifest_test.go out/test-sentinel-config_karmada_io_resource_interpreter_customization_v1alpha1_manifest_test.go out/test-sentinel-config_karmada_io_resource_interpreter_webhook_configuration_v1alpha1_manifest_test.go out/test-sentinel-config_koordinator_sh_cluster_colocation_profile_v1alpha1_manifest_test.go out/test-sentinel-config_storageos_com_operator_config_v1_manifest_test.go out/test-sentinel-control_k8ssandra_io_cassandra_task_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_collected_status_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_federated_object_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_override_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_collected_status_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_federated_cluster_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_federated_object_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_federated_type_config_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_override_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_scheduler_plugin_webhook_configuration_v1alpha1_manifest_test.go out/test-sentinel-core_kubeadmiral_io_scheduling_profile_v1alpha1_manifest_test.go out/test-sentinel-core_linuxsuren_github_com_a_test_v1alpha1_manifest_test.go out/test-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha1_manifest_test.go out/test-sentinel-core_openfeature_dev_feature_flag_configuration_v1alpha2_manifest_test.go out/test-sentinel-core_strimzi_io_strimzi_pod_set_v1beta2_manifest_test.go out/test-sentinel-config_map_v1_manifest_test.go out/test-sentinel-endpoints_v1_manifest_test.go out/test-sentinel-limit_range_v1_manifest_test.go out/test-sentinel-namespace_v1_manifest_test.go out/test-sentinel-persistent_volume_claim_v1_manifest_test.go out/test-sentinel-persistent_volume_v1_manifest_test.go out/test-sentinel-pod_v1_manifest_test.go out/test-sentinel-replication_controller_v1_manifest_test.go out/test-sentinel-secret_v1_manifest_test.go out/test-sentinel-service_account_v1_manifest_test.go out/test-sentinel-service_v1_manifest_test.go out/test-sentinel-couchbase_com_couchbase_autoscaler_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_backup_restore_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_backup_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_bucket_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_cluster_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_collection_group_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_collection_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_ephemeral_bucket_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_group_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_memcached_bucket_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_migration_replication_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_replication_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_role_binding_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_scope_group_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_scope_v2_manifest_test.go out/test-sentinel-couchbase_com_couchbase_user_v2_manifest_test.go out/test-sentinel-craftypath_github_io_sops_secret_v1alpha1_manifest_test.go out/test-sentinel-crane_konveyor_io_operator_config_v1alpha1_manifest_test.go out/test-sentinel-crd_projectcalico_org_bgp_configuration_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_bgp_filter_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_bgp_peer_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_block_affinity_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_calico_node_status_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_cluster_information_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_felix_configuration_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_global_network_policy_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_global_network_set_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_host_endpoint_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ipam_block_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ipam_config_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ipam_handle_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ip_pool_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_ip_reservation_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_kube_controllers_configuration_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_network_policy_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_network_set_v1_manifest_test.go out/test-sentinel-crd_projectcalico_org_tier_v1_manifest_test.go out/test-sentinel-data_fluid_io_alluxio_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_data_backup_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_data_load_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_dataset_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_goose_fs_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_jindo_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_juice_fs_runtime_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_thin_runtime_profile_v1alpha1_manifest_test.go out/test-sentinel-data_fluid_io_thin_runtime_v1alpha1_manifest_test.go out/test-sentinel-databases_schemahero_io_database_v1alpha4_manifest_test.go out/test-sentinel-databases_spotahome_com_redis_failover_v1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_agent_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_metric_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_monitor_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_slo_v1alpha1_manifest_test.go out/test-sentinel-datadoghq_com_datadog_agent_v2alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_action_set_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_policy_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_repo_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_schedule_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_backup_v1alpha1_manifest_test.go out/test-sentinel-dataprotection_kubeblocks_io_restore_v1alpha1_manifest_test.go out/test-sentinel-designer_kaoto_io_kaoto_v1alpha1_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_model_v1alpha2_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_v1alpha2_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_model_v1beta1_manifest_test.go out/test-sentinel-devices_kubeedge_io_device_v1beta1_manifest_test.go out/test-sentinel-devops_kubesphere_io_releaser_controller_v1alpha1_manifest_test.go out/test-sentinel-devops_kubesphere_io_releaser_v1alpha1_manifest_test.go out/test-sentinel-dex_gpu_ninja_com_dex_identity_provider_v1alpha1_manifest_test.go out/test-sentinel-dex_gpu_ninja_com_dex_o_auth2_client_v1alpha1_manifest_test.go out/test-sentinel-dex_gpu_ninja_com_dex_user_v1alpha1_manifest_test.go out/test-sentinel-digitalis_io_vals_secret_v1_manifest_test.go out/test-sentinel-digitalis_io_db_secret_v1beta1_manifest_test.go out/test-sentinel-discovery_k8s_io_endpoint_slice_v1_manifest_test.go out/test-sentinel-documentdb_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/test-sentinel-documentdb_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/test-sentinel-documentdb_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-druid_apache_org_druid_v1alpha1_manifest_test.go out/test-sentinel-druid_stackable_tech_druid_cluster_v1alpha1_manifest_test.go out/test-sentinel-dynamodb_services_k8s_aws_backup_v1alpha1_manifest_test.go out/test-sentinel-dynamodb_services_k8s_aws_global_table_v1alpha1_manifest_test.go out/test-sentinel-dynamodb_services_k8s_aws_table_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_dhcp_options_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_elastic_ip_address_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_instance_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_internet_gateway_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_nat_gateway_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_route_table_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_security_group_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_subnet_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_transit_gateway_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_vpc_v1alpha1_manifest_test.go out/test-sentinel-ec2_services_k8s_aws_vpc_endpoint_v1alpha1_manifest_test.go out/test-sentinel-ecr_services_k8s_aws_pull_through_cache_rule_v1alpha1_manifest_test.go out/test-sentinel-ecr_services_k8s_aws_repository_v1alpha1_manifest_test.go out/test-sentinel-edc_stackable_tech_edc_cluster_v1alpha1_manifest_test.go out/test-sentinel-efs_services_k8s_aws_access_point_v1alpha1_manifest_test.go out/test-sentinel-efs_services_k8s_aws_file_system_v1alpha1_manifest_test.go out/test-sentinel-efs_services_k8s_aws_mount_target_v1alpha1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_cluster_endpoint_slice_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_cluster_info_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_cluster_policy_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_endpoint_slice_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_gateway_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_policy_v1beta1_manifest_test.go out/test-sentinel-egressgateway_spidernet_io_egress_tunnel_v1beta1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_addon_v1alpha1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_fargate_profile_v1alpha1_manifest_test.go out/test-sentinel-eks_services_k8s_aws_nodegroup_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_cache_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_cache_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_replication_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_user_group_v1alpha1_manifest_test.go out/test-sentinel-elasticache_services_k8s_aws_user_v1alpha1_manifest_test.go out/test-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1_manifest_test.go out/test-sentinel-elasticsearch_k8s_elastic_co_elasticsearch_v1beta1_manifest_test.go out/test-sentinel-elbv2_k8s_aws_target_group_binding_v1alpha1_manifest_test.go out/test-sentinel-elbv2_k8s_aws_ingress_class_params_v1beta1_manifest_test.go out/test-sentinel-elbv2_k8s_aws_target_group_binding_v1beta1_manifest_test.go out/test-sentinel-emrcontainers_services_k8s_aws_job_run_v1alpha1_manifest_test.go out/test-sentinel-emrcontainers_services_k8s_aws_virtual_cluster_v1alpha1_manifest_test.go out/test-sentinel-ensembleoss_io_cluster_v1_manifest_test.go out/test-sentinel-ensembleoss_io_resource_v1_manifest_test.go out/test-sentinel-enterprise_gloo_solo_io_auth_config_v1_manifest_test.go out/test-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1_manifest_test.go out/test-sentinel-enterprisesearch_k8s_elastic_co_enterprise_search_v1beta1_manifest_test.go out/test-sentinel-events_k8s_io_event_v1_manifest_test.go out/test-sentinel-everest_percona_com_backup_storage_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_cluster_backup_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_cluster_restore_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_cluster_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_database_engine_v1alpha1_manifest_test.go out/test-sentinel-everest_percona_com_monitoring_config_v1alpha1_manifest_test.go out/test-sentinel-execution_furiko_io_job_config_v1alpha1_manifest_test.go out/test-sentinel-execution_furiko_io_job_v1alpha1_manifest_test.go out/test-sentinel-executor_testkube_io_executor_v1_manifest_test.go out/test-sentinel-executor_testkube_io_webhook_v1_manifest_test.go out/test-sentinel-expansion_gatekeeper_sh_expansion_template_v1alpha1_manifest_test.go out/test-sentinel-expansion_gatekeeper_sh_expansion_template_v1beta1_manifest_test.go out/test-sentinel-extensions_istio_io_wasm_plugin_v1alpha1_manifest_test.go out/test-sentinel-extensions_kubeblocks_io_addon_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_cluster_secret_store_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_external_secret_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_secret_store_v1alpha1_manifest_test.go out/test-sentinel-external_secrets_io_cluster_external_secret_v1beta1_manifest_test.go out/test-sentinel-external_secrets_io_cluster_secret_store_v1beta1_manifest_test.go out/test-sentinel-external_secrets_io_external_secret_v1beta1_manifest_test.go out/test-sentinel-external_secrets_io_secret_store_v1beta1_manifest_test.go out/test-sentinel-externaldata_gatekeeper_sh_provider_v1alpha1_manifest_test.go out/test-sentinel-externaldata_gatekeeper_sh_provider_v1beta1_manifest_test.go out/test-sentinel-externaldns_k8s_io_dns_endpoint_v1alpha1_manifest_test.go out/test-sentinel-externaldns_nginx_org_dns_endpoint_v1_manifest_test.go out/test-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_template_v1alpha1_manifest_test.go out/test-sentinel-fence_agents_remediation_medik8s_io_fence_agents_remediation_v1alpha1_manifest_test.go out/test-sentinel-flagger_app_alert_provider_v1beta1_manifest_test.go out/test-sentinel-flagger_app_canary_v1beta1_manifest_test.go out/test-sentinel-flagger_app_metric_template_v1beta1_manifest_test.go out/test-sentinel-flink_apache_org_flink_deployment_v1beta1_manifest_test.go out/test-sentinel-flink_apache_org_flink_session_job_v1beta1_manifest_test.go out/test-sentinel-flow_volcano_sh_job_flow_v1alpha1_manifest_test.go out/test-sentinel-flow_volcano_sh_job_template_v1alpha1_manifest_test.go out/test-sentinel-flowcontrol_apiserver_k8s_io_flow_schema_v1beta3_manifest_test.go out/test-sentinel-flowcontrol_apiserver_k8s_io_priority_level_configuration_v1beta3_manifest_test.go out/test-sentinel-flows_netobserv_io_flow_collector_v1alpha1_manifest_test.go out/test-sentinel-flows_netobserv_io_flow_collector_v1beta1_manifest_test.go out/test-sentinel-flows_netobserv_io_flow_collector_v1beta2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_filter_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_fluent_bit_config_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_input_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_output_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_cluster_parser_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_collector_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_filter_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_fluent_bit_config_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_fluent_bit_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_output_v1alpha2_manifest_test.go out/test-sentinel-fluentbit_fluent_io_parser_v1alpha2_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_filter_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_fluentd_config_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_input_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_cluster_output_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_filter_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_fluentd_config_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_fluentd_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_input_v1alpha1_manifest_test.go out/test-sentinel-fluentd_fluent_io_output_v1alpha1_manifest_test.go out/test-sentinel-flux_framework_org_mini_cluster_v1alpha1_manifest_test.go out/test-sentinel-flux_framework_org_mini_cluster_v1alpha2_manifest_test.go out/test-sentinel-forklift_konveyor_io_forklift_controller_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_hook_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_host_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_migration_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_network_map_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_openstack_volume_populator_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_ovirt_volume_populator_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_plan_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_provider_v1beta1_manifest_test.go out/test-sentinel-forklift_konveyor_io_storage_map_v1beta1_manifest_test.go out/test-sentinel-fossul_io_backup_config_v1_manifest_test.go out/test-sentinel-fossul_io_backup_schedule_v1_manifest_test.go out/test-sentinel-fossul_io_backup_v1_manifest_test.go out/test-sentinel-fossul_io_fossul_v1_manifest_test.go out/test-sentinel-fossul_io_restore_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_class_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_grpc_route_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_http_route_v1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_backend_lb_policy_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_grpc_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_reference_grant_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_tcp_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_tls_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_udp_route_v1alpha2_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_backend_tls_policy_v1alpha3_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_class_v1beta1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_gateway_v1beta1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_http_route_v1beta1_manifest_test.go out/test-sentinel-gateway_networking_k8s_io_reference_grant_v1beta1_manifest_test.go out/test-sentinel-gateway_nginx_org_client_settings_policy_v1alpha1_manifest_test.go out/test-sentinel-gateway_nginx_org_nginx_gateway_v1alpha1_manifest_test.go out/test-sentinel-gateway_nginx_org_nginx_proxy_v1alpha1_manifest_test.go out/test-sentinel-gateway_nginx_org_observability_policy_v1alpha1_manifest_test.go out/test-sentinel-gateway_solo_io_gateway_v1_manifest_test.go out/test-sentinel-gateway_solo_io_matchable_http_gateway_v1_manifest_test.go out/test-sentinel-gateway_solo_io_route_option_v1_manifest_test.go out/test-sentinel-gateway_solo_io_route_table_v1_manifest_test.go out/test-sentinel-gateway_solo_io_virtual_host_option_v1_manifest_test.go out/test-sentinel-gateway_solo_io_virtual_service_v1_manifest_test.go out/test-sentinel-getambassador_io_auth_service_v1_manifest_test.go out/test-sentinel-getambassador_io_consul_resolver_v1_manifest_test.go out/test-sentinel-getambassador_io_dev_portal_v1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_endpoint_resolver_v1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_service_resolver_v1_manifest_test.go out/test-sentinel-getambassador_io_log_service_v1_manifest_test.go out/test-sentinel-getambassador_io_mapping_v1_manifest_test.go out/test-sentinel-getambassador_io_module_v1_manifest_test.go out/test-sentinel-getambassador_io_rate_limit_service_v1_manifest_test.go out/test-sentinel-getambassador_io_tcp_mapping_v1_manifest_test.go out/test-sentinel-getambassador_io_tls_context_v1_manifest_test.go out/test-sentinel-getambassador_io_tracing_service_v1_manifest_test.go out/test-sentinel-getambassador_io_auth_service_v2_manifest_test.go out/test-sentinel-getambassador_io_consul_resolver_v2_manifest_test.go out/test-sentinel-getambassador_io_dev_portal_v2_manifest_test.go out/test-sentinel-getambassador_io_host_v2_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_endpoint_resolver_v2_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_service_resolver_v2_manifest_test.go out/test-sentinel-getambassador_io_log_service_v2_manifest_test.go out/test-sentinel-getambassador_io_mapping_v2_manifest_test.go out/test-sentinel-getambassador_io_module_v2_manifest_test.go out/test-sentinel-getambassador_io_rate_limit_service_v2_manifest_test.go out/test-sentinel-getambassador_io_tcp_mapping_v2_manifest_test.go out/test-sentinel-getambassador_io_tls_context_v2_manifest_test.go out/test-sentinel-getambassador_io_tracing_service_v2_manifest_test.go out/test-sentinel-getambassador_io_auth_service_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_consul_resolver_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_dev_portal_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_host_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_endpoint_resolver_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_kubernetes_service_resolver_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_listener_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_log_service_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_mapping_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_module_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_rate_limit_service_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_tcp_mapping_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_tls_context_v3alpha1_manifest_test.go out/test-sentinel-getambassador_io_tracing_service_v3alpha1_manifest_test.go out/test-sentinel-gitops_hybrid_cloud_patterns_io_pattern_v1alpha1_manifest_test.go out/test-sentinel-gloo_solo_io_proxy_v1_manifest_test.go out/test-sentinel-gloo_solo_io_settings_v1_manifest_test.go out/test-sentinel-gloo_solo_io_upstream_group_v1_manifest_test.go out/test-sentinel-gloo_solo_io_upstream_v1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_dashboard_v1beta1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_datasource_v1beta1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_folder_v1beta1_manifest_test.go out/test-sentinel-grafana_integreatly_org_grafana_v1beta1_manifest_test.go out/test-sentinel-graphql_gloo_solo_io_graph_ql_api_v1beta1_manifest_test.go out/test-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_class_v1alpha1_manifest_test.go out/test-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_content_v1alpha1_manifest_test.go out/test-sentinel-groupsnapshot_storage_k8s_io_volume_group_snapshot_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_cron_hot_backup_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_hazelcast_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_hot_backup_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_management_center_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_map_v1alpha1_manifest_test.go out/test-sentinel-hazelcast_com_wan_replication_v1alpha1_manifest_test.go out/test-sentinel-hbase_stackable_tech_hbase_cluster_v1alpha1_manifest_test.go out/test-sentinel-hdfs_stackable_tech_hdfs_cluster_v1alpha1_manifest_test.go out/test-sentinel-helm_sigstore_dev_rekor_v1alpha1_manifest_test.go out/test-sentinel-helm_toolkit_fluxcd_io_helm_release_v2_manifest_test.go out/test-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta1_manifest_test.go out/test-sentinel-helm_toolkit_fluxcd_io_helm_release_v2beta2_manifest_test.go out/test-sentinel-hive_openshift_io_checkpoint_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_claim_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_deployment_customization_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_deployment_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_deprovision_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_image_set_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_pool_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_provision_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_relocate_v1_manifest_test.go out/test-sentinel-hive_openshift_io_cluster_state_v1_manifest_test.go out/test-sentinel-hive_openshift_io_dns_zone_v1_manifest_test.go out/test-sentinel-hive_openshift_io_hive_config_v1_manifest_test.go out/test-sentinel-hive_openshift_io_machine_pool_name_lease_v1_manifest_test.go out/test-sentinel-hive_openshift_io_machine_pool_v1_manifest_test.go out/test-sentinel-hive_openshift_io_selector_sync_identity_provider_v1_manifest_test.go out/test-sentinel-hive_openshift_io_selector_sync_set_v1_manifest_test.go out/test-sentinel-hive_openshift_io_sync_identity_provider_v1_manifest_test.go out/test-sentinel-hive_openshift_io_sync_set_v1_manifest_test.go out/test-sentinel-hive_stackable_tech_hive_cluster_v1alpha1_manifest_test.go out/test-sentinel-hiveinternal_openshift_io_cluster_sync_lease_v1alpha1_manifest_test.go out/test-sentinel-hiveinternal_openshift_io_cluster_sync_v1alpha1_manifest_test.go out/test-sentinel-hiveinternal_openshift_io_fake_cluster_install_v1alpha1_manifest_test.go out/test-sentinel-hnc_x_k8s_io_hierarchical_resource_quota_v1alpha2_manifest_test.go out/test-sentinel-hnc_x_k8s_io_hierarchy_configuration_v1alpha2_manifest_test.go out/test-sentinel-hnc_x_k8s_io_hnc_configuration_v1alpha2_manifest_test.go out/test-sentinel-hnc_x_k8s_io_subnamespace_anchor_v1alpha2_manifest_test.go out/test-sentinel-hyperfoil_io_horreum_v1alpha1_manifest_test.go out/test-sentinel-hyperfoil_io_hyperfoil_v1alpha2_manifest_test.go out/test-sentinel-iam_services_k8s_aws_group_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_instance_profile_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_open_id_connect_provider_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_policy_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_role_v1alpha1_manifest_test.go out/test-sentinel-iam_services_k8s_aws_user_v1alpha1_manifest_test.go out/test-sentinel-ibmcloud_ibm_com_composable_v1alpha1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta1_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_policy_v1beta2_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_repository_v1beta2_manifest_test.go out/test-sentinel-image_toolkit_fluxcd_io_image_update_automation_v1beta2_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_event_bridge_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_event_driven_ingestion_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_instance_binding_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicom_study_binding_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dicomweb_ingestion_service_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dimse_ingestion_service_v1alpha1_manifest_test.go out/test-sentinel-imaging_ingestion_alvearie_org_dimse_proxy_v1alpha1_manifest_test.go out/test-sentinel-inference_kubedl_io_elastic_batch_job_v1alpha1_manifest_test.go out/test-sentinel-infinispan_org_infinispan_v1_manifest_test.go out/test-sentinel-infinispan_org_backup_v2alpha1_manifest_test.go out/test-sentinel-infinispan_org_batch_v2alpha1_manifest_test.go out/test-sentinel-infinispan_org_cache_v2alpha1_manifest_test.go out/test-sentinel-infinispan_org_restore_v2alpha1_manifest_test.go out/test-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha1_manifest_test.go out/test-sentinel-infra_contrib_fluxcd_io_terraform_v1alpha2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_template_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_cluster_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_template_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_kubevirt_machine_v1alpha1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha3_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1alpha4_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_tinkerbell_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_identity_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_cluster_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_deployment_zone_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_failure_domain_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_template_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_machine_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_v_sphere_vm_v1beta1_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_template_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_cluster_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_image_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_template_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibm_power_vs_machine_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_cluster_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_template_v1beta2_manifest_test.go out/test-sentinel-infrastructure_cluster_x_k8s_io_ibmvpc_machine_v1beta2_manifest_test.go out/test-sentinel-installation_mattermost_com_mattermost_v1beta1_manifest_test.go out/test-sentinel-instana_io_instana_agent_v1_manifest_test.go out/test-sentinel-integration_rock8s_com_deferred_resource_v1beta1_manifest_test.go out/test-sentinel-integration_rock8s_com_plug_v1beta1_manifest_test.go out/test-sentinel-integration_rock8s_com_socket_v1beta1_manifest_test.go out/test-sentinel-iot_eclipse_org_ditto_v1alpha1_manifest_test.go out/test-sentinel-iot_eclipse_org_hawkbit_v1alpha1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1alpha1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_v1alpha1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_claim_v1beta1_manifest_test.go out/test-sentinel-ipam_cluster_x_k8s_io_ip_address_v1beta1_manifest_test.go out/test-sentinel-isindir_github_com_sops_secret_v1alpha1_manifest_test.go out/test-sentinel-isindir_github_com_sops_secret_v1alpha2_manifest_test.go out/test-sentinel-isindir_github_com_sops_secret_v1alpha3_manifest_test.go out/test-sentinel-jaegertracing_io_jaeger_v1_manifest_test.go out/test-sentinel-jobset_x_k8s_io_job_set_v1alpha2_manifest_test.go out/test-sentinel-jobsmanager_raczylo_com_managed_job_v1beta1_manifest_test.go out/test-sentinel-k6_io_k6_v1alpha1_manifest_test.go out/test-sentinel-k6_io_private_load_zone_v1alpha1_manifest_test.go out/test-sentinel-k6_io_test_run_v1alpha1_manifest_test.go out/test-sentinel-k8gb_absa_oss_gslb_v1beta1_manifest_test.go out/test-sentinel-k8s_keycloak_org_keycloak_realm_import_v2alpha1_manifest_test.go out/test-sentinel-k8s_keycloak_org_keycloak_v2alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_backup_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_connection_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_database_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_grant_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_maria_db_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_max_scale_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_restore_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_sql_job_v1alpha1_manifest_test.go out/test-sentinel-k8s_mariadb_com_user_v1alpha1_manifest_test.go out/test-sentinel-k8s_nginx_org_global_configuration_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_policy_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_transport_server_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_virtual_server_route_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_virtual_server_v1_manifest_test.go out/test-sentinel-k8s_nginx_org_global_configuration_v1alpha1_manifest_test.go out/test-sentinel-k8s_nginx_org_policy_v1alpha1_manifest_test.go out/test-sentinel-k8s_nginx_org_transport_server_v1alpha1_manifest_test.go out/test-sentinel-k8s_otterize_com_client_intents_v1alpha2_manifest_test.go out/test-sentinel-k8s_otterize_com_kafka_server_config_v1alpha2_manifest_test.go out/test-sentinel-k8s_otterize_com_protected_service_v1alpha2_manifest_test.go out/test-sentinel-k8s_otterize_com_client_intents_v1alpha3_manifest_test.go out/test-sentinel-k8s_otterize_com_kafka_server_config_v1alpha3_manifest_test.go out/test-sentinel-k8s_otterize_com_protected_service_v1alpha3_manifest_test.go out/test-sentinel-k8up_io_archive_v1_manifest_test.go out/test-sentinel-k8up_io_backup_v1_manifest_test.go out/test-sentinel-k8up_io_check_v1_manifest_test.go out/test-sentinel-k8up_io_pre_backup_pod_v1_manifest_test.go out/test-sentinel-k8up_io_prune_v1_manifest_test.go out/test-sentinel-k8up_io_restore_v1_manifest_test.go out/test-sentinel-k8up_io_schedule_v1_manifest_test.go out/test-sentinel-k8up_io_snapshot_v1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_cruise_control_operation_v1alpha1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_kafka_topic_v1alpha1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_kafka_user_v1alpha1_manifest_test.go out/test-sentinel-kafka_banzaicloud_io_kafka_cluster_v1beta1_manifest_test.go out/test-sentinel-kafka_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/test-sentinel-kafka_stackable_tech_kafka_cluster_v1alpha1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_topic_v1alpha1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_user_v1alpha1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_topic_v1beta1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_user_v1beta1_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_bridge_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_connect_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_connector_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_mirror_maker2_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_mirror_maker_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_node_pool_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_rebalance_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_topic_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_user_v1beta2_manifest_test.go out/test-sentinel-kafka_strimzi_io_kafka_v1beta2_manifest_test.go out/test-sentinel-kamaji_clastix_io_data_store_v1alpha1_manifest_test.go out/test-sentinel-kamaji_clastix_io_tenant_control_plane_v1alpha1_manifest_test.go out/test-sentinel-karpenter_k8s_aws_ec2_node_class_v1_manifest_test.go out/test-sentinel-karpenter_k8s_aws_ec2_node_class_v1beta1_manifest_test.go out/test-sentinel-karpenter_sh_node_claim_v1_manifest_test.go out/test-sentinel-karpenter_sh_node_pool_v1_manifest_test.go out/test-sentinel-karpenter_sh_node_claim_v1beta1_manifest_test.go out/test-sentinel-karpenter_sh_node_pool_v1beta1_manifest_test.go out/test-sentinel-keda_sh_cluster_trigger_authentication_v1alpha1_manifest_test.go out/test-sentinel-keda_sh_scaled_job_v1alpha1_manifest_test.go out/test-sentinel-keda_sh_scaled_object_v1alpha1_manifest_test.go out/test-sentinel-keda_sh_trigger_authentication_v1alpha1_manifest_test.go out/test-sentinel-keycloak_k8s_reddec_net_keycloak_client_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_backup_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_client_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_realm_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_user_v1alpha1_manifest_test.go out/test-sentinel-keycloak_org_keycloak_v1alpha1_manifest_test.go out/test-sentinel-keyspaces_services_k8s_aws_keyspace_v1alpha1_manifest_test.go out/test-sentinel-keyspaces_services_k8s_aws_table_v1alpha1_manifest_test.go out/test-sentinel-kiali_io_kiali_v1alpha1_manifest_test.go out/test-sentinel-kibana_k8s_elastic_co_kibana_v1_manifest_test.go out/test-sentinel-kibana_k8s_elastic_co_kibana_v1beta1_manifest_test.go out/test-sentinel-kinesis_services_k8s_aws_stream_v1alpha1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_module_v1beta1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_node_modules_config_v1beta1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta1_manifest_test.go out/test-sentinel-kmm_sigs_x_k8s_io_preflight_validation_v1beta2_manifest_test.go out/test-sentinel-kms_services_k8s_aws_alias_v1alpha1_manifest_test.go out/test-sentinel-kms_services_k8s_aws_grant_v1alpha1_manifest_test.go out/test-sentinel-kms_services_k8s_aws_key_v1alpha1_manifest_test.go out/test-sentinel-kuadrant_io_dns_record_v1alpha1_manifest_test.go out/test-sentinel-kuadrant_io_managed_zone_v1alpha1_manifest_test.go out/test-sentinel-kuadrant_io_kuadrant_v1beta1_manifest_test.go out/test-sentinel-kuadrant_io_auth_policy_v1beta2_manifest_test.go out/test-sentinel-kuadrant_io_rate_limit_policy_v1beta2_manifest_test.go out/test-sentinel-kube_green_com_sleep_info_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_cluster_operation_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_cluster_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_local_artifact_set_v1alpha1_manifest_test.go out/test-sentinel-kubean_io_manifest_v1alpha1_manifest_test.go out/test-sentinel-kubecost_com_turndown_schedule_v1alpha1_manifest_test.go out/test-sentinel-kubevious_io_workload_profile_v1alpha1_manifest_test.go out/test-sentinel-kubevious_io_workload_v1alpha1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_cohort_v1alpha1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_multi_kueue_cluster_v1alpha1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_multi_kueue_config_v1alpha1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_admission_check_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_cluster_queue_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_local_queue_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_provisioning_request_config_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_resource_flavor_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_workload_priority_class_v1beta1_manifest_test.go out/test-sentinel-kueue_x_k8s_io_workload_v1beta1_manifest_test.go out/test-sentinel-kuma_io_circuit_breaker_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_container_patch_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_dataplane_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_dataplane_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_external_service_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_fault_injection_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_health_check_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_access_log_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_circuit_breaker_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_fault_injection_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_config_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_instance_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_gateway_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_health_check_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_http_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_load_balancing_strategy_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_proxy_patch_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_rate_limit_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_retry_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_tcp_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_timeout_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_trace_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_traffic_permission_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_mesh_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_proxy_template_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_rate_limit_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_retry_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_service_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_timeout_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_log_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_permission_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_route_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_traffic_trace_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_virtual_outbound_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_egress_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_egress_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_ingress_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_ingress_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_insight_v1alpha1_manifest_test.go out/test-sentinel-kuma_io_zone_v1alpha1_manifest_test.go out/test-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1_manifest_test.go out/test-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta1_manifest_test.go out/test-sentinel-kustomize_toolkit_fluxcd_io_kustomization_v1beta2_manifest_test.go out/test-sentinel-kyverno_io_cluster_policy_v1_manifest_test.go out/test-sentinel-kyverno_io_policy_v1_manifest_test.go out/test-sentinel-kyverno_io_admission_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_background_scan_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_cluster_admission_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_cluster_background_scan_report_v1alpha2_manifest_test.go out/test-sentinel-kyverno_io_update_request_v1beta1_manifest_test.go out/test-sentinel-kyverno_io_admission_report_v2_manifest_test.go out/test-sentinel-kyverno_io_background_scan_report_v2_manifest_test.go out/test-sentinel-kyverno_io_cleanup_policy_v2_manifest_test.go out/test-sentinel-kyverno_io_cluster_admission_report_v2_manifest_test.go out/test-sentinel-kyverno_io_cluster_background_scan_report_v2_manifest_test.go out/test-sentinel-kyverno_io_cluster_cleanup_policy_v2_manifest_test.go out/test-sentinel-kyverno_io_policy_exception_v2_manifest_test.go out/test-sentinel-kyverno_io_update_request_v2_manifest_test.go out/test-sentinel-kyverno_io_cleanup_policy_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_cluster_cleanup_policy_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_global_context_entry_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_policy_exception_v2alpha1_manifest_test.go out/test-sentinel-kyverno_io_cleanup_policy_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_cluster_cleanup_policy_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_cluster_policy_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_policy_exception_v2beta1_manifest_test.go out/test-sentinel-kyverno_io_policy_v2beta1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_alias_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_code_signing_config_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_event_source_mapping_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_function_url_config_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_function_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_layer_version_v1alpha1_manifest_test.go out/test-sentinel-lambda_services_k8s_aws_version_v1alpha1_manifest_test.go out/test-sentinel-lb_lbconfig_carlosedp_com_external_load_balancer_v1_manifest_test.go out/test-sentinel-leaksignal_com_cluster_leaksignal_istio_v1_manifest_test.go out/test-sentinel-leaksignal_com_leaksignal_istio_v1_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta4_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta4_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta4_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta5_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta5_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta5_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta6_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta6_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta6_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_secret_v1beta7_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_bitwarden_template_v1beta7_manifest_test.go out/test-sentinel-lerentis_uploadfilter24_eu_registry_credential_v1beta7_manifest_test.go out/test-sentinel-limitador_kuadrant_io_limitador_v1alpha1_manifest_test.go out/test-sentinel-listeners_stackable_tech_listener_class_v1alpha1_manifest_test.go out/test-sentinel-listeners_stackable_tech_listener_v1alpha1_manifest_test.go out/test-sentinel-listeners_stackable_tech_pod_listeners_v1alpha1_manifest_test.go out/test-sentinel-litmuschaos_io_chaos_engine_v1alpha1_manifest_test.go out/test-sentinel-litmuschaos_io_chaos_experiment_v1alpha1_manifest_test.go out/test-sentinel-litmuschaos_io_chaos_result_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_flow_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_output_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_flow_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_logging_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_output_v1alpha1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_cluster_output_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_fluentbit_agent_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_logging_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_node_agent_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_output_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_cluster_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_cluster_output_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_flow_v1beta1_manifest_test.go out/test-sentinel-logging_banzaicloud_io_syslog_ng_output_v1beta1_manifest_test.go out/test-sentinel-logging_extensions_banzaicloud_io_event_tailer_v1alpha1_manifest_test.go out/test-sentinel-logging_extensions_banzaicloud_io_host_tailer_v1alpha1_manifest_test.go out/test-sentinel-loki_grafana_com_alerting_rule_v1_manifest_test.go out/test-sentinel-loki_grafana_com_loki_stack_v1_manifest_test.go out/test-sentinel-loki_grafana_com_recording_rule_v1_manifest_test.go out/test-sentinel-loki_grafana_com_ruler_config_v1_manifest_test.go out/test-sentinel-loki_grafana_com_alerting_rule_v1beta1_manifest_test.go out/test-sentinel-loki_grafana_com_loki_stack_v1beta1_manifest_test.go out/test-sentinel-loki_grafana_com_recording_rule_v1beta1_manifest_test.go out/test-sentinel-loki_grafana_com_ruler_config_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_data_source_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_manager_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backup_target_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backup_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backup_volume_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_engine_image_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_engine_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_instance_manager_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_node_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_recurring_job_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_replica_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_setting_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_share_manager_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_volume_v1beta1_manifest_test.go out/test-sentinel-longhorn_io_backing_image_data_source_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backing_image_manager_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backing_image_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_backing_image_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_target_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_backup_volume_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_engine_image_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_engine_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_instance_manager_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_node_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_orphan_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_recurring_job_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_replica_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_setting_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_share_manager_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_snapshot_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_support_bundle_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_system_backup_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_system_restore_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_volume_attachment_v1beta2_manifest_test.go out/test-sentinel-longhorn_io_volume_v1beta2_manifest_test.go out/test-sentinel-m4e_krestomat_io_moodle_v1alpha1_manifest_test.go out/test-sentinel-m4e_krestomat_io_nginx_v1alpha1_manifest_test.go out/test-sentinel-m4e_krestomat_io_phpfpm_v1alpha1_manifest_test.go out/test-sentinel-m4e_krestomat_io_routine_v1alpha1_manifest_test.go out/test-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_template_v1alpha1_manifest_test.go out/test-sentinel-machine_deletion_remediation_medik8s_io_machine_deletion_remediation_v1alpha1_manifest_test.go out/test-sentinel-maps_k8s_elastic_co_elastic_maps_server_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_backup_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_connection_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_database_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_grant_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_maria_db_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_restore_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_sql_job_v1alpha1_manifest_test.go out/test-sentinel-mariadb_mmontes_io_user_v1alpha1_manifest_test.go out/test-sentinel-marin3r_3scale_net_envoy_config_revision_v1alpha1_manifest_test.go out/test-sentinel-marin3r_3scale_net_envoy_config_v1alpha1_manifest_test.go out/test-sentinel-mattermost_com_cluster_installation_v1alpha1_manifest_test.go out/test-sentinel-mattermost_com_mattermost_restore_db_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_acl_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_cluster_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_snapshot_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-memorydb_services_k8s_aws_user_v1alpha1_manifest_test.go out/test-sentinel-metacontroller_k8s_io_composite_controller_v1alpha1_manifest_test.go out/test-sentinel-metacontroller_k8s_io_controller_revision_v1alpha1_manifest_test.go out/test-sentinel-metacontroller_k8s_io_decorator_controller_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_bare_metal_host_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_bmc_event_subscription_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_data_image_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_firmware_schema_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_hardware_data_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_host_firmware_components_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_host_firmware_settings_v1alpha1_manifest_test.go out/test-sentinel-metal3_io_preprovisioning_image_v1alpha1_manifest_test.go out/test-sentinel-minio_min_io_tenant_v2_manifest_test.go out/test-sentinel-mirrors_kts_studio_secret_mirror_v1alpha1_manifest_test.go out/test-sentinel-mirrors_kts_studio_secret_mirror_v1alpha2_manifest_test.go out/test-sentinel-model_kubedl_io_model_v1alpha1_manifest_test.go out/test-sentinel-model_kubedl_io_model_version_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_alertmanager_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_pod_monitor_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_probe_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_prometheus_rule_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_prometheus_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_service_monitor_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_thanos_ruler_v1_manifest_test.go out/test-sentinel-monitoring_coreos_com_alertmanager_config_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_prometheus_agent_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_scrape_config_v1alpha1_manifest_test.go out/test-sentinel-monitoring_coreos_com_alertmanager_config_v1beta1_manifest_test.go out/test-sentinel-monocle_monocle_change_metrics_io_monocle_v1alpha1_manifest_test.go out/test-sentinel-mq_services_k8s_aws_broker_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_info_import_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_gateway_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_label_identity_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_member_cluster_announce_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_multi_cluster_config_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_resource_export_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_resource_import_v1alpha1_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_claim_v1alpha2_manifest_test.go out/test-sentinel-multicluster_crd_antrea_io_cluster_set_v1alpha2_manifest_test.go out/test-sentinel-multicluster_x_k8s_io_applied_work_v1alpha1_manifest_test.go out/test-sentinel-multicluster_x_k8s_io_service_import_v1alpha1_manifest_test.go out/test-sentinel-multicluster_x_k8s_io_work_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_metadata_v1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_v1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_modify_set_v1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_image_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_metadata_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_modify_set_v1alpha1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_metadata_v1beta1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_assign_v1beta1_manifest_test.go out/test-sentinel-mutations_gatekeeper_sh_modify_set_v1beta1_manifest_test.go out/test-sentinel-nativestor_alauda_io_raw_device_v1_manifest_test.go out/test-sentinel-netchecks_io_network_assertion_v1_manifest_test.go out/test-sentinel-networkfirewall_services_k8s_aws_firewall_policy_v1alpha1_manifest_test.go out/test-sentinel-networkfirewall_services_k8s_aws_firewall_v1alpha1_manifest_test.go out/test-sentinel-networkfirewall_services_k8s_aws_rule_group_v1alpha1_manifest_test.go out/test-sentinel-networking_gke_io_gcp_backend_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_gcp_gateway_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_health_check_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_lb_policy_v1_manifest_test.go out/test-sentinel-networking_gke_io_managed_certificate_v1_manifest_test.go out/test-sentinel-networking_istio_io_destination_rule_v1_manifest_test.go out/test-sentinel-networking_istio_io_gateway_v1_manifest_test.go out/test-sentinel-networking_istio_io_service_entry_v1_manifest_test.go out/test-sentinel-networking_istio_io_sidecar_v1_manifest_test.go out/test-sentinel-networking_istio_io_virtual_service_v1_manifest_test.go out/test-sentinel-networking_istio_io_workload_entry_v1_manifest_test.go out/test-sentinel-networking_istio_io_workload_group_v1_manifest_test.go out/test-sentinel-networking_istio_io_destination_rule_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_envoy_filter_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_gateway_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_service_entry_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_sidecar_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_virtual_service_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_workload_entry_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_workload_group_v1alpha3_manifest_test.go out/test-sentinel-networking_istio_io_destination_rule_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_gateway_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_proxy_config_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_service_entry_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_sidecar_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_virtual_service_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_workload_entry_v1beta1_manifest_test.go out/test-sentinel-networking_istio_io_workload_group_v1beta1_manifest_test.go out/test-sentinel-networking_k8s_aws_policy_endpoint_v1alpha1_manifest_test.go out/test-sentinel-networking_k8s_io_ingress_class_v1_manifest_test.go out/test-sentinel-networking_k8s_io_ingress_v1_manifest_test.go out/test-sentinel-networking_k8s_io_network_policy_v1_manifest_test.go out/test-sentinel-networking_karmada_io_multi_cluster_ingress_v1alpha1_manifest_test.go out/test-sentinel-networking_karmada_io_multi_cluster_service_v1alpha1_manifest_test.go out/test-sentinel-nfd_k8s_sigs_io_node_feature_rule_v1alpha1_manifest_test.go out/test-sentinel-nfd_kubernetes_io_node_feature_discovery_v1_manifest_test.go out/test-sentinel-nfd_kubernetes_io_node_feature_rule_v1alpha1_manifest_test.go out/test-sentinel-nifi_stackable_tech_nifi_cluster_v1alpha1_manifest_test.go out/test-sentinel-nodeinfo_volcano_sh_numatopology_v1alpha1_manifest_test.go out/test-sentinel-notebook_kubedl_io_notebook_v1alpha1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_receiver_v1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_alert_v1beta1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_provider_v1beta1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta1_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_alert_v1beta2_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_provider_v1beta2_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_receiver_v1beta2_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_alert_v1beta3_manifest_test.go out/test-sentinel-notification_toolkit_fluxcd_io_provider_v1beta3_manifest_test.go out/test-sentinel-objectbucket_io_object_bucket_claim_v1alpha1_manifest_test.go out/test-sentinel-objectbucket_io_object_bucket_v1alpha1_manifest_test.go out/test-sentinel-ocmagent_managed_openshift_io_managed_fleet_notification_v1alpha1_manifest_test.go out/test-sentinel-ocmagent_managed_openshift_io_managed_notification_v1alpha1_manifest_test.go out/test-sentinel-ocmagent_managed_openshift_io_ocm_agent_v1alpha1_manifest_test.go out/test-sentinel-onepassword_com_one_password_item_v1_manifest_test.go out/test-sentinel-opa_stackable_tech_opa_cluster_v1alpha1_manifest_test.go out/test-sentinel-opensearchservice_services_k8s_aws_domain_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_instrumentation_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_op_amp_bridge_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_open_telemetry_collector_v1alpha1_manifest_test.go out/test-sentinel-opentelemetry_io_open_telemetry_collector_v1beta1_manifest_test.go out/test-sentinel-operations_kubeedge_io_node_upgrade_job_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_csp_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_database_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_enforcer_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_gateway_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_kube_enforcer_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_scanner_v1alpha1_manifest_test.go out/test-sentinel-operator_aquasec_com_aqua_server_v1alpha1_manifest_test.go out/test-sentinel-operator_authorino_kuadrant_io_authorino_v1beta1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha1_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_addon_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_bootstrap_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_control_plane_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_core_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cluster_x_k8s_io_infrastructure_provider_v1alpha2_manifest_test.go out/test-sentinel-operator_cryostat_io_cryostat_v1beta1_manifest_test.go out/test-sentinel-operator_cryostat_io_cryostat_v1beta2_manifest_test.go out/test-sentinel-operator_knative_dev_knative_eventing_v1beta1_manifest_test.go out/test-sentinel-operator_knative_dev_knative_serving_v1beta1_manifest_test.go out/test-sentinel-operator_marin3r_3scale_net_discovery_service_certificate_v1alpha1_manifest_test.go out/test-sentinel-operator_marin3r_3scale_net_discovery_service_v1alpha1_manifest_test.go out/test-sentinel-operator_marin3r_3scale_net_envoy_deployment_v1alpha1_manifest_test.go out/test-sentinel-operator_open_cluster_management_io_cluster_manager_v1_manifest_test.go out/test-sentinel-operator_open_cluster_management_io_klusterlet_v1_manifest_test.go out/test-sentinel-operator_shipwright_io_shipwright_build_v1alpha1_manifest_test.go out/test-sentinel-operator_tigera_io_amazon_cloud_integration_v1_manifest_test.go out/test-sentinel-operator_tigera_io_api_server_v1_manifest_test.go out/test-sentinel-operator_tigera_io_application_layer_v1_manifest_test.go out/test-sentinel-operator_tigera_io_authentication_v1_manifest_test.go out/test-sentinel-operator_tigera_io_compliance_v1_manifest_test.go out/test-sentinel-operator_tigera_io_egress_gateway_v1_manifest_test.go out/test-sentinel-operator_tigera_io_image_set_v1_manifest_test.go out/test-sentinel-operator_tigera_io_installation_v1_manifest_test.go out/test-sentinel-operator_tigera_io_intrusion_detection_v1_manifest_test.go out/test-sentinel-operator_tigera_io_log_collector_v1_manifest_test.go out/test-sentinel-operator_tigera_io_log_storage_v1_manifest_test.go out/test-sentinel-operator_tigera_io_management_cluster_connection_v1_manifest_test.go out/test-sentinel-operator_tigera_io_management_cluster_v1_manifest_test.go out/test-sentinel-operator_tigera_io_manager_v1_manifest_test.go out/test-sentinel-operator_tigera_io_monitor_v1_manifest_test.go out/test-sentinel-operator_tigera_io_packet_capture_v1_manifest_test.go out/test-sentinel-operator_tigera_io_policy_recommendation_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tenant_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tigera_status_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tls_pass_through_route_v1_manifest_test.go out/test-sentinel-operator_tigera_io_tls_terminated_route_v1_manifest_test.go out/test-sentinel-operator_tigera_io_amazon_cloud_integration_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_v_logs_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_agent_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_alert_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_alertmanager_config_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_alertmanager_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_auth_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_cluster_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_node_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_pod_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_probe_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_rule_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_scrape_config_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_service_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_single_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_static_scrape_v1beta1_manifest_test.go out/test-sentinel-operator_victoriametrics_com_vm_user_v1beta1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_backup_schedule_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_backup_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_config_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_cron_anything_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_database_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_export_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_import_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_instance_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_pitr_v1alpha1_manifest_test.go out/test-sentinel-oracle_db_anthosapis_com_release_v1alpha1_manifest_test.go out/test-sentinel-org_eclipse_che_che_cluster_v1_manifest_test.go out/test-sentinel-org_eclipse_che_che_cluster_v2_manifest_test.go out/test-sentinel-organizations_services_k8s_aws_organizational_unit_v1alpha1_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_backup_v2_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_cluster_v2_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_restore_v2_manifest_test.go out/test-sentinel-pgv2_percona_com_percona_pg_upgrade_v2_manifest_test.go out/test-sentinel-pipes_services_k8s_aws_pipe_v1alpha1_manifest_test.go out/test-sentinel-pkg_crossplane_io_configuration_revision_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_configuration_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_provider_revision_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_provider_v1_manifest_test.go out/test-sentinel-pkg_crossplane_io_controller_config_v1alpha1_manifest_test.go out/test-sentinel-pkg_crossplane_io_lock_v1beta1_manifest_test.go out/test-sentinel-policy_clusterpedia_io_cluster_import_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_clusterpedia_io_pedia_cluster_lifecycle_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_cluster_override_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_cluster_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_federated_resource_quota_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_override_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_karmada_io_propagation_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_kubeedge_io_service_account_access_v1alpha1_manifest_test.go out/test-sentinel-policy_networking_k8s_io_admin_network_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_networking_k8s_io_baseline_admin_network_policy_v1alpha1_manifest_test.go out/test-sentinel-policy_pod_disruption_budget_v1_manifest_test.go out/test-sentinel-postgres_operator_crunchydata_com_pg_admin_v1beta1_manifest_test.go out/test-sentinel-postgres_operator_crunchydata_com_pg_upgrade_v1beta1_manifest_test.go out/test-sentinel-postgres_operator_crunchydata_com_postgres_cluster_v1beta1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_backup_v1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_cluster_v1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_pooler_v1_manifest_test.go out/test-sentinel-postgresql_cnpg_io_scheduled_backup_v1_manifest_test.go out/test-sentinel-projectcontour_io_http_proxy_v1_manifest_test.go out/test-sentinel-projectcontour_io_tls_certificate_delegation_v1_manifest_test.go out/test-sentinel-projectcontour_io_contour_configuration_v1alpha1_manifest_test.go out/test-sentinel-projectcontour_io_contour_deployment_v1alpha1_manifest_test.go out/test-sentinel-projectcontour_io_extension_service_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_alert_manager_definition_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_logging_configuration_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_rule_groups_namespace_v1alpha1_manifest_test.go out/test-sentinel-prometheusservice_services_k8s_aws_workspace_v1alpha1_manifest_test.go out/test-sentinel-ps_percona_com_percona_server_my_sql_v1alpha1_manifest_test.go out/test-sentinel-ps_percona_com_percona_server_my_sql_backup_v1alpha1_manifest_test.go out/test-sentinel-ps_percona_com_percona_server_my_sql_restore_v1alpha1_manifest_test.go out/test-sentinel-psmdb_percona_com_percona_server_mongo_db_v1_manifest_test.go out/test-sentinel-psmdb_percona_com_percona_server_mongo_db_backup_v1_manifest_test.go out/test-sentinel-psmdb_percona_com_percona_server_mongo_db_restore_v1_manifest_test.go out/test-sentinel-ptp_openshift_io_node_ptp_device_v1_manifest_test.go out/test-sentinel-ptp_openshift_io_ptp_config_v1_manifest_test.go out/test-sentinel-ptp_openshift_io_ptp_operator_config_v1_manifest_test.go out/test-sentinel-pubsubplus_solace_com_pub_sub_plus_event_broker_v1beta1_manifest_test.go out/test-sentinel-pxc_percona_com_percona_xtra_db_cluster_backup_v1_manifest_test.go out/test-sentinel-pxc_percona_com_percona_xtra_db_cluster_restore_v1_manifest_test.go out/test-sentinel-pxc_percona_com_percona_xtra_db_cluster_v1_manifest_test.go out/test-sentinel-quay_redhat_com_quay_registry_v1_manifest_test.go out/test-sentinel-quota_codeflare_dev_quota_subtree_v1alpha1_manifest_test.go out/test-sentinel-ray_io_ray_cluster_v1_manifest_test.go out/test-sentinel-ray_io_ray_job_v1_manifest_test.go out/test-sentinel-ray_io_ray_service_v1_manifest_test.go out/test-sentinel-ray_io_ray_cluster_v1alpha1_manifest_test.go out/test-sentinel-ray_io_ray_job_v1alpha1_manifest_test.go out/test-sentinel-ray_io_ray_service_v1alpha1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_cluster_role_binding_v1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_cluster_role_v1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_role_binding_v1_manifest_test.go out/test-sentinel-rbac_authorization_k8s_io_role_v1_manifest_test.go out/test-sentinel-rbacmanager_reactiveops_io_rbac_definition_v1beta1_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_component_v1_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_operation_v1_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_component_v1beta2_manifest_test.go out/test-sentinel-rc_app_stacks_runtime_operation_v1beta2_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_cluster_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_cluster_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_instance_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_parameter_group_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_proxy_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_db_subnet_group_v1alpha1_manifest_test.go out/test-sentinel-rds_services_k8s_aws_global_cluster_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_group_config_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_keepalived_group_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_namespace_config_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_patch_v1alpha1_manifest_test.go out/test-sentinel-redhatcop_redhat_io_user_config_v1alpha1_manifest_test.go out/test-sentinel-registry_apicur_io_apicurio_registry_v1_manifest_test.go out/test-sentinel-registry_devfile_io_cluster_devfile_registries_list_v1alpha1_manifest_test.go out/test-sentinel-registry_devfile_io_devfile_registries_list_v1alpha1_manifest_test.go out/test-sentinel-registry_devfile_io_devfile_registry_v1alpha1_manifest_test.go out/test-sentinel-reliablesyncs_kubeedge_io_cluster_object_sync_v1alpha1_manifest_test.go out/test-sentinel-reliablesyncs_kubeedge_io_object_sync_v1alpha1_manifest_test.go out/test-sentinel-remediation_medik8s_io_node_health_check_v1alpha1_manifest_test.go out/test-sentinel-repo_manager_pulpproject_org_pulp_backup_v1beta2_manifest_test.go out/test-sentinel-repo_manager_pulpproject_org_pulp_restore_v1beta2_manifest_test.go out/test-sentinel-repo_manager_pulpproject_org_pulp_v1beta2_manifest_test.go out/test-sentinel-reports_kyverno_io_cluster_ephemeral_report_v1_manifest_test.go out/test-sentinel-reports_kyverno_io_ephemeral_report_v1_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_login_rule_v1_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_okta_import_rule_v1_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_provision_token_v2_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_saml_connector_v2_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_user_v2_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_github_connector_v3_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_oidc_connector_v3_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_role_v5_manifest_test.go out/test-sentinel-resources_teleport_dev_teleport_role_v6_manifest_test.go out/test-sentinel-ripsaw_cloudbulldozer_io_benchmark_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_broker_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_console_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_name_service_v1alpha1_manifest_test.go out/test-sentinel-rocketmq_apache_org_topic_transfer_v1alpha1_manifest_test.go out/test-sentinel-route53_services_k8s_aws_hosted_zone_v1alpha1_manifest_test.go out/test-sentinel-route53_services_k8s_aws_record_set_v1alpha1_manifest_test.go out/test-sentinel-route53resolver_services_k8s_aws_resolver_endpoint_v1alpha1_manifest_test.go out/test-sentinel-route53resolver_services_k8s_aws_resolver_rule_v1alpha1_manifest_test.go out/test-sentinel-rules_kubeedge_io_rule_endpoint_v1_manifest_test.go out/test-sentinel-rules_kubeedge_io_rule_v1_manifest_test.go out/test-sentinel-runtime_cluster_x_k8s_io_extension_config_v1alpha1_manifest_test.go out/test-sentinel-s3_services_k8s_aws_bucket_v1alpha1_manifest_test.go out/test-sentinel-s3_snappcloud_io_s3_bucket_v1alpha1_manifest_test.go out/test-sentinel-s3_snappcloud_io_s3_user_claim_v1alpha1_manifest_test.go out/test-sentinel-s3_snappcloud_io_s3_user_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_app_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_data_quality_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_domain_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_endpoint_config_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_endpoint_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_feature_group_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_hyper_parameter_tuning_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_bias_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_explainability_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_package_group_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_package_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_quality_job_definition_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_model_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_monitoring_schedule_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_notebook_instance_lifecycle_config_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_notebook_instance_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_processing_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_training_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_transform_job_v1alpha1_manifest_test.go out/test-sentinel-sagemaker_services_k8s_aws_user_profile_v1alpha1_manifest_test.go out/test-sentinel-scheduling_k8s_io_priority_class_v1_manifest_test.go out/test-sentinel-scheduling_koordinator_sh_device_v1alpha1_manifest_test.go out/test-sentinel-scheduling_koordinator_sh_pod_migration_job_v1alpha1_manifest_test.go out/test-sentinel-scheduling_koordinator_sh_reservation_v1alpha1_manifest_test.go out/test-sentinel-scheduling_sigs_k8s_io_elastic_quota_v1alpha1_manifest_test.go out/test-sentinel-scheduling_sigs_k8s_io_pod_group_v1alpha1_manifest_test.go out/test-sentinel-scheduling_volcano_sh_pod_group_v1beta1_manifest_test.go out/test-sentinel-scheduling_volcano_sh_queue_v1beta1_manifest_test.go out/test-sentinel-schemas_schemahero_io_data_type_v1alpha4_manifest_test.go out/test-sentinel-schemas_schemahero_io_migration_v1alpha4_manifest_test.go out/test-sentinel-schemas_schemahero_io_table_v1alpha4_manifest_test.go out/test-sentinel-scylla_scylladb_com_scylla_cluster_v1_manifest_test.go out/test-sentinel-scylla_scylladb_com_node_config_v1alpha1_manifest_test.go out/test-sentinel-scylla_scylladb_com_scylla_operator_config_v1alpha1_manifest_test.go out/test-sentinel-secretgenerator_mittwald_de_basic_auth_v1alpha1_manifest_test.go out/test-sentinel-secretgenerator_mittwald_de_ssh_key_pair_v1alpha1_manifest_test.go out/test-sentinel-secretgenerator_mittwald_de_string_secret_v1alpha1_manifest_test.go out/test-sentinel-secrets_crossplane_io_store_config_v1alpha1_manifest_test.go out/test-sentinel-secrets_doppler_com_doppler_secret_v1alpha1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_hcp_auth_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_hcp_vault_secrets_app_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_auth_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_connection_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_dynamic_secret_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_pki_secret_v1beta1_manifest_test.go out/test-sentinel-secrets_hashicorp_com_vault_static_secret_v1beta1_manifest_test.go out/test-sentinel-secrets_stackable_tech_secret_class_v1alpha1_manifest_test.go out/test-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1_manifest_test.go out/test-sentinel-secrets_store_csi_x_k8s_io_secret_provider_class_v1alpha1_manifest_test.go out/test-sentinel-secretsmanager_services_k8s_aws_secret_v1alpha1_manifest_test.go out/test-sentinel-secscan_quay_redhat_com_image_manifest_vuln_v1alpha1_manifest_test.go out/test-sentinel-security_istio_io_authorization_policy_v1_manifest_test.go out/test-sentinel-security_istio_io_peer_authentication_v1_manifest_test.go out/test-sentinel-security_istio_io_request_authentication_v1_manifest_test.go out/test-sentinel-security_istio_io_authorization_policy_v1beta1_manifest_test.go out/test-sentinel-security_istio_io_peer_authentication_v1beta1_manifest_test.go out/test-sentinel-security_istio_io_request_authentication_v1beta1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_app_armor_profile_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_profile_binding_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_profile_recording_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_security_profile_node_status_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_security_profiles_operator_daemon_v1alpha1_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_raw_selinux_profile_v1alpha2_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_selinux_profile_v1alpha2_manifest_test.go out/test-sentinel-security_profiles_operator_x_k8s_io_seccomp_profile_v1beta1_manifest_test.go out/test-sentinel-self_node_remediation_medik8s_io_self_node_remediation_config_v1alpha1_manifest_test.go out/test-sentinel-self_node_remediation_medik8s_io_self_node_remediation_template_v1alpha1_manifest_test.go out/test-sentinel-self_node_remediation_medik8s_io_self_node_remediation_v1alpha1_manifest_test.go out/test-sentinel-sematext_com_sematext_agent_v1_manifest_test.go out/test-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1alpha3_manifest_test.go out/test-sentinel-servicebinding_io_service_binding_v1alpha3_manifest_test.go out/test-sentinel-servicebinding_io_cluster_workload_resource_mapping_v1beta1_manifest_test.go out/test-sentinel-servicebinding_io_service_binding_v1beta1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_istio_control_plane_v1alpha1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_istio_mesh_gateway_v1alpha1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_istio_mesh_v1alpha1_manifest_test.go out/test-sentinel-servicemesh_cisco_com_peer_istio_control_plane_v1alpha1_manifest_test.go out/test-sentinel-services_k8s_aws_adopted_resource_v1alpha1_manifest_test.go out/test-sentinel-services_k8s_aws_field_export_v1alpha1_manifest_test.go out/test-sentinel-serving_kubedl_io_inference_v1alpha1_manifest_test.go out/test-sentinel-sfn_services_k8s_aws_activity_v1alpha1_manifest_test.go out/test-sentinel-sfn_services_k8s_aws_state_machine_v1alpha1_manifest_test.go out/test-sentinel-site_superedge_io_node_group_v1alpha1_manifest_test.go out/test-sentinel-site_superedge_io_node_unit_v1alpha1_manifest_test.go out/test-sentinel-slo_koordinator_sh_node_metric_v1alpha1_manifest_test.go out/test-sentinel-slo_koordinator_sh_node_slo_v1alpha1_manifest_test.go out/test-sentinel-sloth_slok_dev_prometheus_service_level_v1_manifest_test.go out/test-sentinel-snapscheduler_backube_snapshot_schedule_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_class_v1beta1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_content_v1beta1_manifest_test.go out/test-sentinel-snapshot_storage_k8s_io_volume_snapshot_v1beta1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_platform_application_v1alpha1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_platform_endpoint_v1alpha1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_subscription_v1alpha1_manifest_test.go out/test-sentinel-sns_services_k8s_aws_topic_v1alpha1_manifest_test.go out/test-sentinel-sonataflow_org_sonata_flow_build_v1alpha08_manifest_test.go out/test-sentinel-sonataflow_org_sonata_flow_platform_v1alpha08_manifest_test.go out/test-sentinel-sonataflow_org_sonata_flow_v1alpha08_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_bucket_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_git_repository_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_chart_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_repository_v1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_bucket_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta1_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_bucket_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_git_repository_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_chart_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_helm_repository_v1beta2_manifest_test.go out/test-sentinel-source_toolkit_fluxcd_io_oci_repository_v1beta2_manifest_test.go out/test-sentinel-spark_stackable_tech_spark_application_v1alpha1_manifest_test.go out/test-sentinel-spark_stackable_tech_spark_history_server_v1alpha1_manifest_test.go out/test-sentinel-sparkoperator_k8s_io_scheduled_spark_application_v1beta2_manifest_test.go out/test-sentinel-sparkoperator_k8s_io_spark_application_v1beta2_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_identity_v1alpha1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v1alpha1_manifest_test.go out/test-sentinel-spv_no_azure_managed_identity_v1alpha1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v2alpha1_manifest_test.go out/test-sentinel-spv_no_azure_key_vault_secret_v2beta1_manifest_test.go out/test-sentinel-sqs_services_k8s_aws_queue_v1alpha1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_ovs_network_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_ib_network_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_node_policy_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_node_state_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_pool_config_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_network_v1_manifest_test.go out/test-sentinel-sriovnetwork_openshift_io_sriov_operator_config_v1_manifest_test.go out/test-sentinel-storage_k8s_io_csi_driver_v1_manifest_test.go out/test-sentinel-storage_k8s_io_csi_node_v1_manifest_test.go out/test-sentinel-storage_k8s_io_storage_class_v1_manifest_test.go out/test-sentinel-storage_k8s_io_volume_attachment_v1_manifest_test.go out/test-sentinel-storage_kubeblocks_io_storage_provider_v1alpha1_manifest_test.go out/test-sentinel-storageos_com_storage_os_cluster_v1_manifest_test.go out/test-sentinel-sts_min_io_policy_binding_v1alpha1_manifest_test.go out/test-sentinel-sts_min_io_policy_binding_v1beta1_manifest_test.go out/test-sentinel-stunner_l7mp_io_dataplane_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_gateway_config_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_static_service_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_udp_route_v1_manifest_test.go out/test-sentinel-stunner_l7mp_io_dataplane_v1alpha1_manifest_test.go out/test-sentinel-stunner_l7mp_io_gateway_config_v1alpha1_manifest_test.go out/test-sentinel-stunner_l7mp_io_static_service_v1alpha1_manifest_test.go out/test-sentinel-submariner_io_broker_v1alpha1_manifest_test.go out/test-sentinel-submariner_io_service_discovery_v1alpha1_manifest_test.go out/test-sentinel-submariner_io_submariner_v1alpha1_manifest_test.go out/test-sentinel-superset_stackable_tech_druid_connection_v1alpha1_manifest_test.go out/test-sentinel-superset_stackable_tech_superset_cluster_v1alpha1_manifest_test.go out/test-sentinel-telemetry_istio_io_telemetry_v1_manifest_test.go out/test-sentinel-telemetry_istio_io_telemetry_v1alpha1_manifest_test.go out/test-sentinel-templates_gatekeeper_sh_constraint_template_v1_manifest_test.go out/test-sentinel-templates_gatekeeper_sh_constraint_template_v1alpha1_manifest_test.go out/test-sentinel-templates_gatekeeper_sh_constraint_template_v1beta1_manifest_test.go out/test-sentinel-tempo_grafana_com_tempo_monolithic_v1alpha1_manifest_test.go out/test-sentinel-tempo_grafana_com_tempo_stack_v1alpha1_manifest_test.go out/test-sentinel-temporal_io_temporal_cluster_client_v1beta1_manifest_test.go out/test-sentinel-temporal_io_temporal_cluster_v1beta1_manifest_test.go out/test-sentinel-temporal_io_temporal_namespace_v1beta1_manifest_test.go out/test-sentinel-temporal_io_temporal_worker_process_v1beta1_manifest_test.go out/test-sentinel-tests_testkube_io_script_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_execution_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_source_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_execution_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_trigger_v1_manifest_test.go out/test-sentinel-tests_testkube_io_test_v1_manifest_test.go out/test-sentinel-tests_testkube_io_script_v2_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_v2_manifest_test.go out/test-sentinel-tests_testkube_io_test_v2_manifest_test.go out/test-sentinel-tests_testkube_io_test_suite_v3_manifest_test.go out/test-sentinel-tests_testkube_io_test_v3_manifest_test.go out/test-sentinel-tf_tungsten_io_analytics_alarm_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_analytics_snmp_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_analytics_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_cassandra_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_config_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_control_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_kubemanager_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_manager_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_query_engine_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_rabbitmq_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_redis_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_vrouter_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_webui_v1alpha1_manifest_test.go out/test-sentinel-tf_tungsten_io_zookeeper_v1alpha1_manifest_test.go out/test-sentinel-theketch_io_app_v1beta1_manifest_test.go out/test-sentinel-theketch_io_job_v1beta1_manifest_test.go out/test-sentinel-tinkerbell_org_hardware_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_osie_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_stack_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_template_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_workflow_v1alpha1_manifest_test.go out/test-sentinel-tinkerbell_org_hardware_v1alpha2_manifest_test.go out/test-sentinel-tinkerbell_org_osie_v1alpha2_manifest_test.go out/test-sentinel-tinkerbell_org_template_v1alpha2_manifest_test.go out/test-sentinel-tinkerbell_org_workflow_v1alpha2_manifest_test.go out/test-sentinel-topology_node_k8s_io_node_resource_topology_v1alpha1_manifest_test.go out/test-sentinel-topolvm_cybozu_com_logical_volume_v1_manifest_test.go out/test-sentinel-topolvm_cybozu_com_topolvm_cluster_v2_manifest_test.go out/test-sentinel-traefik_io_ingress_route_tcp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_ingress_route_udp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_ingress_route_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_middleware_tcp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_middleware_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_servers_transport_tcp_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_servers_transport_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_tls_option_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_tls_store_v1alpha1_manifest_test.go out/test-sentinel-traefik_io_traefik_service_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_elastic_dl_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_mars_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_mpi_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_py_torch_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_tf_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_xdl_job_v1alpha1_manifest_test.go out/test-sentinel-training_kubedl_io_xg_boost_job_v1alpha1_manifest_test.go out/test-sentinel-trino_stackable_tech_trino_catalog_v1alpha1_manifest_test.go out/test-sentinel-trino_stackable_tech_trino_cluster_v1alpha1_manifest_test.go out/test-sentinel-trust_cert_manager_io_bundle_v1alpha1_manifest_test.go out/test-sentinel-upgrade_cattle_io_plan_v1_manifest_test.go out/test-sentinel-upgrade_managed_openshift_io_upgrade_config_v1alpha1_manifest_test.go out/test-sentinel-velero_io_backup_repository_v1_manifest_test.go out/test-sentinel-velero_io_backup_storage_location_v1_manifest_test.go out/test-sentinel-velero_io_backup_v1_manifest_test.go out/test-sentinel-velero_io_delete_backup_request_v1_manifest_test.go out/test-sentinel-velero_io_download_request_v1_manifest_test.go out/test-sentinel-velero_io_pod_volume_backup_v1_manifest_test.go out/test-sentinel-velero_io_pod_volume_restore_v1_manifest_test.go out/test-sentinel-velero_io_restore_v1_manifest_test.go out/test-sentinel-velero_io_schedule_v1_manifest_test.go out/test-sentinel-velero_io_server_status_request_v1_manifest_test.go out/test-sentinel-velero_io_volume_snapshot_location_v1_manifest_test.go out/test-sentinel-velero_io_data_download_v2alpha1_manifest_test.go out/test-sentinel-velero_io_data_upload_v2alpha1_manifest_test.go out/test-sentinel-virt_virtink_smartx_com_virtual_machine_migration_v1alpha1_manifest_test.go out/test-sentinel-virt_virtink_smartx_com_virtual_machine_v1alpha1_manifest_test.go out/test-sentinel-volsync_backube_replication_destination_v1alpha1_manifest_test.go out/test-sentinel-volsync_backube_replication_source_v1alpha1_manifest_test.go out/test-sentinel-vpcresources_k8s_aws_cni_node_v1alpha1_manifest_test.go out/test-sentinel-vpcresources_k8s_aws_security_group_policy_v1beta1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_policy_report_v1alpha1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_cluster_policy_report_v1alpha2_manifest_test.go out/test-sentinel-wgpolicyk8s_io_policy_report_v1alpha2_manifest_test.go out/test-sentinel-wgpolicyk8s_io_cluster_policy_report_v1beta1_manifest_test.go out/test-sentinel-wgpolicyk8s_io_policy_report_v1beta1_manifest_test.go out/test-sentinel-wildfly_org_wild_fly_server_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_cluster_resource_binding_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_resource_binding_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_work_v1alpha1_manifest_test.go out/test-sentinel-work_karmada_io_cluster_resource_binding_v1alpha2_manifest_test.go out/test-sentinel-work_karmada_io_resource_binding_v1alpha2_manifest_test.go out/test-sentinel-workload_codeflare_dev_app_wrapper_v1beta1_manifest_test.go out/test-sentinel-workload_codeflare_dev_scheduling_spec_v1beta1_manifest_test.go out/test-sentinel-workload_codeflare_dev_app_wrapper_v1beta2_manifest_test.go out/test-sentinel-workloads_kubeblocks_io_instance_set_v1_manifest_test.go out/test-sentinel-workloads_kubeblocks_io_instance_set_v1alpha1_manifest_test.go out/test-sentinel-workloads_kubeblocks_io_replicated_state_machine_v1alpha1_manifest_test.go out/test-sentinel-zonecontrol_k8s_aws_zone_aware_update_v1_manifest_test.go out/test-sentinel-zonecontrol_k8s_aws_zone_disruption_budget_v1_manifest_test.go out/test-sentinel-zookeeper_pravega_io_zookeeper_cluster_v1beta1_manifest_test.go out/test-sentinel-zookeeper_stackable_tech_zookeeper_cluster_v1alpha1_manifest_test.go out/test-sentinel-zookeeper_stackable_tech_zookeeper_znode_v1alpha1_manifest_test.go out/tools-tests-sentinel ## run the unit tests